<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Performance comparison of Apache MINA and JBoss Netty</title>
	<atom:link href="http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/</link>
	<description>Mike Heath&#039;s Blog</description>
	<lastBuildDate>Thu, 10 Nov 2011 18:05:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>By: &#160; Performance comparison of Apache MINA and JBoss Netty Revisited&#160;by&#160;Totally Nerdy Information</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-37358</link>
		<dc:creator>&#160; Performance comparison of Apache MINA and JBoss Netty Revisited&#160;by&#160;Totally Nerdy Information</dc:creator>
		<pubDate>Fri, 27 Nov 2009 19:25:05 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-37358</guid>
		<description>[...] I ran my my original comparison, both the tests and databases were running on the same host connecting over the loopback interface. [...]</description>
		<content:encoded><![CDATA[<p>[...] I ran my my original comparison, both the tests and databases were running on the same host connecting over the loopback interface. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jim</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-33966</link>
		<dc:creator>jim</dc:creator>
		<pubDate>Fri, 29 May 2009 02:23:47 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-33966</guid>
		<description>my project 1xio at Google Code http://code.google.com/p/1xio takes a non-managed approach to NIO async http stream serving.

I implemented Selectors for write which is uncommon but it works out nicely in the single thread environment.

in this implementation I use NIO as an intentional java memory leak for it&#039;s NIO objects and do what i can to avoid strings by marking up the input ByteBuffers rather than manufacture new heap objects.  

I added mimetypes and the UTF8 java strings roughly equivalent to /etc/mimetype in size double the footprint.


there is a single thread, 4 enums, and no classes presently to provide a reasonably useful static http server.

i use a technique I call &#039;java metaprogramming&#039; similar in the spirit of c++ template metaprogramming which might have some in-constructor jit benefits over other static singleton visitor pattern strategies for asynchronous services.</description>
		<content:encoded><![CDATA[<p>my project 1xio at Google Code <a href="http://code.google.com/p/1xio">http://code.google.com/p/1xio</a> takes a non-managed approach to NIO async http stream serving.</p>
<p>I implemented Selectors for write which is uncommon but it works out nicely in the single thread environment.</p>
<p>in this implementation I use NIO as an intentional java memory leak for it&#8217;s NIO objects and do what i can to avoid strings by marking up the input ByteBuffers rather than manufacture new heap objects.  </p>
<p>I added mimetypes and the UTF8 java strings roughly equivalent to /etc/mimetype in size double the footprint.</p>
<p>there is a single thread, 4 enums, and no classes presently to provide a reasonably useful static http server.</p>
<p>i use a technique I call &#8216;java metaprogramming&#8217; similar in the spirit of c++ template metaprogramming which might have some in-constructor jit benefits over other static singleton visitor pattern strategies for asynchronous services.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scalable NIO Servers - Part I - Performance &#171; Z&#124;NET Development</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-32219</link>
		<dc:creator>Scalable NIO Servers - Part I - Performance &#171; Z&#124;NET Development</dc:creator>
		<pubDate>Wed, 08 Apr 2009 03:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-32219</guid>
		<description>[...] http://swamp.homelinux.net/blog/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss... [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://swamp.homelinux.net/blog/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss..">http://swamp.homelinux.net/blog/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss..</a>. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Niall</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-31744</link>
		<dc:creator>Niall</dc:creator>
		<pubDate>Sun, 29 Mar 2009 01:12:55 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-31744</guid>
		<description>From your results thats about 10% faster - I guess we have different definitions of significant</description>
		<content:encoded><![CDATA[<p>From your results thats about 10% faster &#8211; I guess we have different definitions of significant</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: emmanuel lecharny</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-30623</link>
		<dc:creator>emmanuel lecharny</dc:creator>
		<pubDate>Thu, 05 Mar 2009 18:57:37 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-30623</guid>
		<description>Hi Mike,

what would be interesting is to profile MINA to know exactly where the time is lost. I&#039;m not sure that the bottleneck is where you think... Or if it&#039;s there, then, well, you are a MINA committer, isn&#039;t it ? :)

What&#039;s obvious is that we have many things to improve in MINA. Btw, the number you gave just shiw a slight difference, around 10%, which is still significant, but not overkilling. Except if you consider that a large part of the time is consummed in MySQL.

Last, not least, the very same test without any application at the end - ie, just a plain loopback - might demonstrate a bigger difference. Could you strip your test from the MySQL part, and re-run it ? 

Would it be too much to ask you to share the test environment too ? 

Many thanks !</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>what would be interesting is to profile MINA to know exactly where the time is lost. I&#8217;m not sure that the bottleneck is where you think&#8230; Or if it&#8217;s there, then, well, you are a MINA committer, isn&#8217;t it ? <img src='http://blog.toadhead.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>What&#8217;s obvious is that we have many things to improve in MINA. Btw, the number you gave just shiw a slight difference, around 10%, which is still significant, but not overkilling. Except if you consider that a large part of the time is consummed in MySQL.</p>
<p>Last, not least, the very same test without any application at the end &#8211; ie, just a plain loopback &#8211; might demonstrate a bigger difference. Could you strip your test from the MySQL part, and re-run it ? </p>
<p>Would it be too much to ask you to share the test environment too ? </p>
<p>Many thanks !</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trustin Lee</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-30581</link>
		<dc:creator>Trustin Lee</dc:creator>
		<pubDate>Wed, 04 Mar 2009 16:51:43 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-30581</guid>
		<description>I realized that they are not exactly same at handling write requests.  If the write() is called from an I/O thread, Netty tries to flush the buffer as soon as possible, while MINA doesn&#039;t flush the queue to a certain point.

If the write() is called from an other thread than an I/O thread, both behaves same.  However, that&#039;s where the better queue and thread pool implementation kicks in.</description>
		<content:encoded><![CDATA[<p>I realized that they are not exactly same at handling write requests.  If the write() is called from an I/O thread, Netty tries to flush the buffer as soon as possible, while MINA doesn&#8217;t flush the queue to a certain point.</p>
<p>If the write() is called from an other thread than an I/O thread, both behaves same.  However, that&#8217;s where the better queue and thread pool implementation kicks in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trustin Lee</title>
		<link>http://blog.toadhead.net/index.php/2009/03/03/performance-comparison-of-apache-mina-and-jboss-netty/#comment-30579</link>
		<dc:creator>Trustin Lee</dc:creator>
		<pubDate>Wed, 04 Mar 2009 16:38:38 +0000</pubDate>
		<guid isPermaLink="false">http://swamp.homelinux.net/blog/?p=71#comment-30579</guid>
		<description>Hi Mike, thanks for sharing your test result!  The number looks pretty nice. :)

To correct just one thing, any write request in Netty is supposed to be queued to its internal buffer and flushed by I/O worker threads.  This is pretty same with what MINA does.

Netty worked just like you mentioned in your post before, but the behavior has been reverted back when 3.0.0.GA is released due to some contention.  I&#039;d like to figure out the root cause of the contention to reduce the latency even more soon.

I believe where the biggest difference comes now from is probably the effective usage of data structure.  Especially, Netty has much more effective buffer and queue implementation.</description>
		<content:encoded><![CDATA[<p>Hi Mike, thanks for sharing your test result!  The number looks pretty nice. <img src='http://blog.toadhead.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To correct just one thing, any write request in Netty is supposed to be queued to its internal buffer and flushed by I/O worker threads.  This is pretty same with what MINA does.</p>
<p>Netty worked just like you mentioned in your post before, but the behavior has been reverted back when 3.0.0.GA is released due to some contention.  I&#8217;d like to figure out the root cause of the contention to reduce the latency even more soon.</p>
<p>I believe where the biggest difference comes now from is probably the effective usage of data structure.  Especially, Netty has much more effective buffer and queue implementation.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

