<?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>Kommentare zu: Poor Groovy Performance</title>
	<atom:link href="http://www.fischerlaender.net/perl/poor-groovy-performance/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fischerlaender.net/perl/poor-groovy-performance</link>
	<description>One Blog Is Not Enough</description>
	<lastBuildDate>Sun, 29 Jan 2012 09:54:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: stefanie</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-22184</link>
		<dc:creator>stefanie</dc:creator>
		<pubDate>Fri, 23 Jan 2009 08:36:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-22184</guid>
		<description>groovy rocks</description>
		<content:encoded><![CDATA[<p>groovy rocks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: XiZi</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-10268</link>
		<dc:creator>XiZi</dc:creator>
		<pubDate>Tue, 23 Sep 2008 12:27:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-10268</guid>
		<description>I benchmarked compiled Groovy in an enterprise Java web application to be used as JSF backing beans and it is more than 100 times slower!!! 
See, so very slower than expected...</description>
		<content:encoded><![CDATA[<p>I benchmarked compiled Groovy in an enterprise Java web application to be used as JSF backing beans and it is more than 100 times slower!!!<br />
See, so very slower than expected&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Groovy - interesting but to slow now &#124; Rich Internet Applications</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-7524</link>
		<dc:creator>Groovy - interesting but to slow now &#124; Rich Internet Applications</dc:creator>
		<pubDate>Wed, 11 Jun 2008 12:30:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-7524</guid>
		<description>[...] &#8220;little&#8221; problem with Groovy - low performance  You can find tests and quick comparison here. Why it is so ? explanation you can find in headius (Charles Nutter) blog in this article. [...]</description>
		<content:encoded><![CDATA[<p>[...] &#8220;little&#8221; problem with Groovy &#8211; low performance  You can find tests and quick comparison here. Why it is so ? explanation you can find in headius (Charles Nutter) blog in this article. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Grant</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-5795</link>
		<dc:creator>Grant</dc:creator>
		<pubDate>Fri, 14 Mar 2008 16:36:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-5795</guid>
		<description>I know this is an old post, but it still shows up on Google, so I thought I&#039;d post.

I&#039;m considering switching a project from Rails to Grails. After running across this post, I decided to test it out for myself.

I used a sum.txt file of 1,000,000 lines (the same contents listed on the site, repeated 1,000 times). To minimize the effects of startup time, I put a for loop counting 1..10 around the whole block of code. The code I used was exactly what was posted here and on the shootout site, with the text file being read each iteration of the loop.

All I&#039;ve got running right now is a windows box (XP SP2, E6600 core2), so I&#039;m not sure how to exactly measure CPU time on it. I just watched the &quot;CPU Time&quot; field in the task manager, and the results were:

Ruby 1.8.6: 27s
Ruby 1.9.0: 27s
Java 1.6.0_5: 1m 6s
JRuby 1.0.3: 43s
JRuby 1.1 RC2: java.lang.OutOfMemoryError: Java heap space
Groovy:	15s

Java definitely ran the fastest once the file was loaded, but something about file IO or the StreamTokenizer class with FileInputStream really slowed it down.

Loading the file into an array of 1,000,000 strings once for all 10 iterations produced:
Ruby 1.8.6: 9s (179mb)
Ruby 1.9.0: 9s (179mb)
Java 1.6.0_5: 8s (67mb)
JRuby 1.0.3: 12s (190mb)
JRuby 1.1 RC2: 12s (190mb)
Groovy: 13s (77mb)
(ram usage in parenthesis)

For the hell of it, I used Groovy code to load the file and had it pass off an ArrayList to Java to sum up, and it finished in only 2.5 seconds. I&#039;d imagine more optimized Java would be about as quick.

The difference in RAM usage seems really significant. I wonder how much RAM is used in equal size Grails vs. Rails apps?</description>
		<content:encoded><![CDATA[<p>I know this is an old post, but it still shows up on Google, so I thought I&#8217;d post.</p>
<p>I&#8217;m considering switching a project from Rails to Grails. After running across this post, I decided to test it out for myself.</p>
<p>I used a sum.txt file of 1,000,000 lines (the same contents listed on the site, repeated 1,000 times). To minimize the effects of startup time, I put a for loop counting 1..10 around the whole block of code. The code I used was exactly what was posted here and on the shootout site, with the text file being read each iteration of the loop.</p>
<p>All I&#8217;ve got running right now is a windows box (XP SP2, E6600 core2), so I&#8217;m not sure how to exactly measure CPU time on it. I just watched the &#8220;CPU Time&#8221; field in the task manager, and the results were:</p>
<p>Ruby 1.8.6: 27s<br />
Ruby 1.9.0: 27s<br />
Java 1.6.0_5: 1m 6s<br />
JRuby 1.0.3: 43s<br />
JRuby 1.1 RC2: java.lang.OutOfMemoryError: Java heap space<br />
Groovy:	15s</p>
<p>Java definitely ran the fastest once the file was loaded, but something about file IO or the StreamTokenizer class with FileInputStream really slowed it down.</p>
<p>Loading the file into an array of 1,000,000 strings once for all 10 iterations produced:<br />
Ruby 1.8.6: 9s (179mb)<br />
Ruby 1.9.0: 9s (179mb)<br />
Java 1.6.0_5: 8s (67mb)<br />
JRuby 1.0.3: 12s (190mb)<br />
JRuby 1.1 RC2: 12s (190mb)<br />
Groovy: 13s (77mb)<br />
(ram usage in parenthesis)</p>
<p>For the hell of it, I used Groovy code to load the file and had it pass off an ArrayList to Java to sum up, and it finished in only 2.5 seconds. I&#8217;d imagine more optimized Java would be about as quick.</p>
<p>The difference in RAM usage seems really significant. I wonder how much RAM is used in equal size Grails vs. Rails apps?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Stefan</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-2435</link>
		<dc:creator>Stefan</dc:creator>
		<pubDate>Sat, 15 Dec 2007 18:58:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-2435</guid>
		<description>Thomas, how big was the file you used to calculate the sums? Wihout knowing how many times the loop had to iterate, your times don&#039;t give us much information.</description>
		<content:encoded><![CDATA[<p>Thomas, how big was the file you used to calculate the sums? Wihout knowing how many times the loop had to iterate, your times don&#8217;t give us much information.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Thomas</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-2428</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Sat, 15 Dec 2007 10:59:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-2428</guid>
		<description>Test 1) I added time1 and time2 and println time2-time1 lines to your test code. In groovy 1.5 command line your sum test takes 31 or *62* or 78 ms and in groovyshell 16 ms to execute.

Test 2) Removing time1 and time2 code, it is taking about 30 ms by hand time measuring, by a clock, when executed from groovy command line.

(My machine has 2 T7200 2 MHz processor with jdk 1.6)</description>
		<content:encoded><![CDATA[<p>Test 1) I added time1 and time2 and println time2-time1 lines to your test code. In groovy 1.5 command line your sum test takes 31 or *62* or 78 ms and in groovyshell 16 ms to execute.</p>
<p>Test 2) Removing time1 and time2 code, it is taking about 30 ms by hand time measuring, by a clock, when executed from groovy command line.</p>
<p>(My machine has 2 T7200 2 MHz processor with jdk 1.6)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Randy</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-2269</link>
		<dc:creator>Randy</dc:creator>
		<pubDate>Thu, 06 Dec 2007 11:14:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-2269</guid>
		<description>If you want to see a very different perspective on performance this article: http://1060.org/upload/fibonacci.html examines the performance of an address space based computational environment compared to a conventional algorithmic approach. Effectively what it shows is an environment in which each computed result is located at an address (a URI address space) and each result is cached using the URI as the cache key. The net result for working systems is that computations can be done with a scripting language (JavaScript in this paper) and the whole system performs very well because redundant computations can be avoided. The system is called NetKernel which supports Groovy, JavaScript, Ruby, Python, Java and other languages.</description>
		<content:encoded><![CDATA[<p>If you want to see a very different perspective on performance this article: <a href="http://1060.org/upload/fibonacci.html" rel="nofollow"></a><a href='http://1060.org/upload/fibonacci.html'>http://1060.org/upload/fibonacci.html</a> examines the performance of an address space based computational environment compared to a conventional algorithmic approach. Effectively what it shows is an environment in which each computed result is located at an address (a URI address space) and each result is cached using the URI as the cache key. The net result for working systems is that computations can be done with a scripting language (JavaScript in this paper) and the whole system performs very well because redundant computations can be avoided. The system is called NetKernel which supports Groovy, JavaScript, Ruby, Python, Java and other languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: tom</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-2182</link>
		<dc:creator>tom</dc:creator>
		<pubDate>Sun, 02 Dec 2007 08:48:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-2182</guid>
		<description>Well, I just stumbled over a groovy book and thought: Hey, groovy has all the features I was missing in ruby and the tight java integration wouldn&#039;t be a disadvantage too. So, I ran a stupid test -- the typical prime calculation thingy. The test itself is pointless. But groovy took 12 to 15 seconds to startup, which is about the time ruby needs to finish the test. I think one of the problems lies in the startup script that scans all sorts of directories which is kind of slow with cygwin.</description>
		<content:encoded><![CDATA[<p>Well, I just stumbled over a groovy book and thought: Hey, groovy has all the features I was missing in ruby and the tight java integration wouldn&#8217;t be a disadvantage too. So, I ran a stupid test &#8212; the typical prime calculation thingy. The test itself is pointless. But groovy took 12 to 15 seconds to startup, which is about the time ruby needs to finish the test. I think one of the problems lies in the startup script that scans all sorts of directories which is kind of slow with cygwin.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Anthony</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-205</link>
		<dc:creator>Anthony</dc:creator>
		<pubDate>Fri, 17 Aug 2007 17:23:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-205</guid>
		<description>This is not the price we pay for dynamic languages.
It is noted in the benchmark that Perl was faster than Java. Lisp code can be compiled to machine language (you can have a mash of interpreted and compiled functions), and good Lisp code will in general be less than 2x more expensive than C (ike Java)
In conclusion, Groovy&#039;s performance (or lack thereof) cannot be attributed to an intrinsic feature of dynamic languages.</description>
		<content:encoded><![CDATA[<p>This is not the price we pay for dynamic languages.<br />
It is noted in the benchmark that Perl was faster than Java. Lisp code can be compiled to machine language (you can have a mash of interpreted and compiled functions), and good Lisp code will in general be less than 2x more expensive than C (ike Java)<br />
In conclusion, Groovy&#8217;s performance (or lack thereof) cannot be attributed to an intrinsic feature of dynamic languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Stefan</title>
		<link>http://www.fischerlaender.net/perl/poor-groovy-performance/comment-page-1#comment-175</link>
		<dc:creator>Stefan</dc:creator>
		<pubDate>Wed, 08 Aug 2007 08:22:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.fischerlaender.net/perl/poor-groovy-performance#comment-175</guid>
		<description>Jason,
I&#039;m not disappointed that Groovy is slower than Java. This is the price we pay for dynamic languages, because it makes live easier for us programmers. I&#039;m disappointed that Groovy is that much slower than Perl, Ruby and even PHP - all of them also dynamic languages with a start-up penalty.
I did this benchmarks prior to a decision to what technology to use for a new project. This project involves a lot of processing in the back-end, so runtime performance is important. And we wanted to use the same language for the front-end, too, for obvious reasons. Of course we could have used Groovy for the front-end and Java for the heavy back-end work, but we wanted a dynamic(!) language for the back-end.</description>
		<content:encoded><![CDATA[<p>Jason,<br />
I&#8217;m not disappointed that Groovy is slower than Java. This is the price we pay for dynamic languages, because it makes live easier for us programmers. I&#8217;m disappointed that Groovy is that much slower than Perl, Ruby and even PHP &#8211; all of them also dynamic languages with a start-up penalty.<br />
I did this benchmarks prior to a decision to what technology to use for a new project. This project involves a lot of processing in the back-end, so runtime performance is important. And we wanted to use the same language for the front-end, too, for obvious reasons. Of course we could have used Groovy for the front-end and Java for the heavy back-end work, but we wanted a dynamic(!) language for the back-end.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

