<?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: Rails and Grails performance compared</title>
	<atom:link href="http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/</link>
	<description>Grails developer/consultant</description>
	<lastBuildDate>Mon, 08 Mar 2010 21:39:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Marc Palmer</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-105793</link>
		<dc:creator>Marc Palmer</dc:creator>
		<pubDate>Sat, 06 Dec 2008 19:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-105793</guid>
		<description>Adrian - this was a long time ago - 1.5years. Can&#039;t remember sorry</description>
		<content:encoded><![CDATA[<p>Adrian &#8211; this was a long time ago &#8211; 1.5years. Can&#8217;t remember sorry</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adrian</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-105788</link>
		<dc:creator>Adrian</dc:creator>
		<pubDate>Sat, 06 Dec 2008 17:33:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-105788</guid>
		<description>Can you confirm the JVM options you used when starting tomcat - particularly the Xmx?</description>
		<content:encoded><![CDATA[<p>Can you confirm the JVM options you used when starting tomcat &#8211; particularly the Xmx?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik van Oosten</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-18961</link>
		<dc:creator>Erik van Oosten</dc:creator>
		<pubDate>Fri, 30 Mar 2007 13:42:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-18961</guid>
		<description>And if I may add, please make sure you use Ruby 1.8.5. It is considerably faster then earlier versions.</description>
		<content:encoded><![CDATA[<p>And if I may add, please make sure you use Ruby 1.8.5. It is considerably faster then earlier versions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik van Oosten</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-18959</link>
		<dc:creator>Erik van Oosten</dc:creator>
		<pubDate>Fri, 30 Mar 2007 13:37:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-18959</guid>
		<description>Thanks for these nicely done measurements.

Could you please, for the next round, repeat the Rails tests with erubis (http://www.kuwata-lab.com/erubis/). Erubis replaces the default erb to do the rhtml parsing and rendering.

Instructions. First install erubis:
# gem install erubis

Then add the following line to &quot;config/environment/production.rb&quot;:
require &quot;erubis&quot;

Good luck!</description>
		<content:encoded><![CDATA[<p>Thanks for these nicely done measurements.</p>
<p>Could you please, for the next round, repeat the Rails tests with erubis (<a href="http://www.kuwata-lab.com/erubis/" rel="nofollow">http://www.kuwata-lab.com/erubis/</a>). Erubis replaces the default erb to do the rhtml parsing and rendering.</p>
<p>Instructions. First install erubis:<br />
# gem install erubis</p>
<p>Then add the following line to &#8220;config/environment/production.rb&#8221;:<br />
require &#8220;erubis&#8221;</p>
<p>Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Palmer</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-18143</link>
		<dc:creator>Marc Palmer</dc:creator>
		<pubDate>Tue, 27 Mar 2007 12:00:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-18143</guid>
		<description>Stephan - this is not quite correct. C vs. Java is an oversimplification. If anything it is testing the implementation of the languages (Ruby in C, Groovy in Java), not the underlying languages.

You can&#039;t compare the max speed of two car engines unless both cars have identical weight, aerodynamics etc and Groovy and Ruby are very different implementations, so your comparison is meaningless.

This is measuring what happens when you run the full application stack, that&#039;s all.</description>
		<content:encoded><![CDATA[<p>Stephan &#8211; this is not quite correct. C vs. Java is an oversimplification. If anything it is testing the implementation of the languages (Ruby in C, Groovy in Java), not the underlying languages.</p>
<p>You can&#8217;t compare the max speed of two car engines unless both cars have identical weight, aerodynamics etc and Groovy and Ruby are very different implementations, so your comparison is meaningless.</p>
<p>This is measuring what happens when you run the full application stack, that&#8217;s all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-17893</link>
		<dc:creator>Stephan</dc:creator>
		<pubDate>Mon, 26 Mar 2007 15:49:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-17893</guid>
		<description>Ravi,

I thought most Ruby code is C? (Not the Rails code). Which means this compars a.) DB I/O performance b.) C versus Java</description>
		<content:encoded><![CDATA[<p>Ravi,</p>
<p>I thought most Ruby code is C? (Not the Rails code). Which means this compars a.) DB I/O performance b.) C versus Java</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ravi</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-16881</link>
		<dc:creator>Ravi</dc:creator>
		<pubDate>Fri, 23 Mar 2007 23:49:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-16881</guid>
		<description>I&#039;m not surprised that Grails is faster on most tests, even after you reran your tests using a cluster of mongrels.  You&#039;re still really comparing apples to oranges-- Java runs as jit&#039;ed bytecode and Ruby is interpreted directly.  Bottom line, in my tests Java can be over an order of magnitude faster in the general case.  I think its a credit to Rails that it actually won even one of the benchmarks! ;-)   Just goes to show that at the end of the day most db driven web apps are io bound.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not surprised that Grails is faster on most tests, even after you reran your tests using a cluster of mongrels.  You&#8217;re still really comparing apples to oranges&#8211; Java runs as jit&#8217;ed bytecode and Ruby is interpreted directly.  Bottom line, in my tests Java can be over an order of magnitude faster in the general case.  I think its a credit to Rails that it actually won even one of the benchmarks! <img src='http://www.anyware.co.uk/2005/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />    Just goes to show that at the end of the day most db driven web apps are io bound.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Wells</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-16852</link>
		<dc:creator>John Wells</dc:creator>
		<pubDate>Fri, 23 Mar 2007 20:46:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-16852</guid>
		<description>Marc,

Well, I&#039;m that user who&#039;s doing the testing. And I need to clarify. Rails doesn&#039;t get worse when going from 1 to 10 mongrels...it actually gets much better. However, going from 10 to 20 had a slightly negative impact:

http://thoughtmining.blogspot.com/2007/03/grails-versus-rails-comparison.html</description>
		<content:encoded><![CDATA[<p>Marc,</p>
<p>Well, I&#8217;m that user who&#8217;s doing the testing. And I need to clarify. Rails doesn&#8217;t get worse when going from 1 to 10 mongrels&#8230;it actually gets much better. However, going from 10 to 20 had a slightly negative impact:</p>
<p><a href="http://thoughtmining.blogspot.com/2007/03/grails-versus-rails-comparison.html" rel="nofollow">http://thoughtmining.blogspot.com/2007/03/grails-versus-rails-comparison.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Palmer</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-16844</link>
		<dc:creator>Marc Palmer</dc:creator>
		<pubDate>Fri, 23 Mar 2007 20:15:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-16844</guid>
		<description>These tests are being done by a Rails/Grails user. So far, Rails gets worse with more mongrels, but they are still looking into it.

Threading boosts concurrency, not performance. A single Rails mongrel running at full pelt and with an unloaded (single DB sessions at a time) MySQL is likely to be faster than any threaded solution, as far as I can see currently. No timeslicing, bottom line. Multi-threading slows things down if anything, but improves the concurrency under load.

We did not detail # concurrent sessions per second so this aspect of performance, is arguably not relevant.</description>
		<content:encoded><![CDATA[<p>These tests are being done by a Rails/Grails user. So far, Rails gets worse with more mongrels, but they are still looking into it.</p>
<p>Threading boosts concurrency, not performance. A single Rails mongrel running at full pelt and with an unloaded (single DB sessions at a time) MySQL is likely to be faster than any threaded solution, as far as I can see currently. No timeslicing, bottom line. Multi-threading slows things down if anything, but improves the concurrency under load.</p>
<p>We did not detail # concurrent sessions per second so this aspect of performance, is arguably not relevant.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Barry</title>
		<link>http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/comment-page-1/#comment-16794</link>
		<dc:creator>Paul Barry</dc:creator>
		<pubDate>Fri, 23 Mar 2007 16:16:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.anyware.co.uk/2005/2007/03/23/rails-and-grails-performance-compared/#comment-16794</guid>
		<description>A rails application is not threaded like a Java app.  What this means is that when you only have 1 mongrel process, all requests must be processed serially.  This is not true for 1 tomcat instance.  Since tomcat is a java app, it is threaded and process multiple requests at once, when gives it better performance under a concurrent load. 

The way you handle more concurrent requests with a Rails app is to run multiple mongrel instances (on the same server, a different port for each) using mongrel_cluster[1].  Then you use something like Apache 2.2&#039;s mod_proxy_balancer to load balance the requests across the multiple mongrel instances.

It would be interesting to see these tests run again with mongrel_cluster running 2, 4, 6, 8, et.c instances to see what impact that would have.  for this kind of test, I would guess that it actually wouldn&#039;t be a tremendous boost, because each requests should be very fast.  But when testing requests that can take longer than a few milliseconds, especially where uploading or downloading of large amount of data is concerned, the performance difference would probably be huge with using multiple mongrel instances.

http://mongrel.rubyforge.org/docs/mongrel_cluster.html</description>
		<content:encoded><![CDATA[<p>A rails application is not threaded like a Java app.  What this means is that when you only have 1 mongrel process, all requests must be processed serially.  This is not true for 1 tomcat instance.  Since tomcat is a java app, it is threaded and process multiple requests at once, when gives it better performance under a concurrent load. </p>
<p>The way you handle more concurrent requests with a Rails app is to run multiple mongrel instances (on the same server, a different port for each) using mongrel_cluster[1].  Then you use something like Apache 2.2&#8217;s mod_proxy_balancer to load balance the requests across the multiple mongrel instances.</p>
<p>It would be interesting to see these tests run again with mongrel_cluster running 2, 4, 6, 8, et.c instances to see what impact that would have.  for this kind of test, I would guess that it actually wouldn&#8217;t be a tremendous boost, because each requests should be very fast.  But when testing requests that can take longer than a few milliseconds, especially where uploading or downloading of large amount of data is concerned, the performance difference would probably be huge with using multiple mongrel instances.</p>
<p><a href="http://mongrel.rubyforge.org/docs/mongrel_cluster.html" rel="nofollow">http://mongrel.rubyforge.org/docs/mongrel_cluster.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
