<?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: Why many Java performance tests are wrong</title>
	<atom:link href="http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/feed" rel="self" type="application/rss+xml" />
	<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong</link>
	<description></description>
	<lastBuildDate>Thu, 11 Mar 2010 10:58:38 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Kirk</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-7450</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Tue, 24 Feb 2009 07:48:23 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-7450</guid>
		<description>Nice posting. I would add that you can see interference in the benchmark by calculating the variance. It should be close to zero in this case. Also you should investigate how the code was optimized to ensure that you don&#039;t lose the effect you are trying to measure. You can use PrintComplied (iirc). Another recommended option is to dump the generated native code using a debug version of the JVM.</description>
		<content:encoded><![CDATA[<p>Nice posting. I would add that you can see interference in the benchmark by calculating the variance. It should be close to zero in this case. Also you should investigate how the code was optimized to ensure that you don&#8217;t lose the effect you are trying to measure. You can use PrintComplied (iirc). Another recommended option is to dump the generated native code using a debug version of the JVM.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill the Lizard</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-7357</link>
		<dc:creator>Bill the Lizard</dc:creator>
		<pubDate>Fri, 20 Feb 2009 17:34:36 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-7357</guid>
		<description>Good article.  I&#039;ve been guilty of this kind of performance non-testing myself in the past.  It&#039;s good to read a post that doesn&#039;t just say &quot;That&#039;s wrong,&quot; but also says why it&#039;s wrong and what to do about it.</description>
		<content:encoded><![CDATA[<p>Good article.  I&#8217;ve been guilty of this kind of performance non-testing myself in the past.  It&#8217;s good to read a post that doesn&#8217;t just say &#8220;That&#8217;s wrong,&#8221; but also says why it&#8217;s wrong and what to do about it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daan</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-7047</link>
		<dc:creator>Daan</dc:creator>
		<pubDate>Wed, 11 Feb 2009 18:46:29 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-7047</guid>
		<description>Hi Nils,

Glad you liked it!

- Daan</description>
		<content:encoded><![CDATA[<p>Hi Nils,</p>
<p>Glad you liked it!</p>
<p>- Daan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nils</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-7027</link>
		<dc:creator>Nils</dc:creator>
		<pubDate>Wed, 11 Feb 2009 08:58:41 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-7027</guid>
		<description>Really liked that article, gives some good hints... will do some further research on that topic.

Thanks man!</description>
		<content:encoded><![CDATA[<p>Really liked that article, gives some good hints&#8230; will do some further research on that topic.</p>
<p>Thanks man!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cedric Franz</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6856</link>
		<dc:creator>Cedric Franz</dc:creator>
		<pubDate>Fri, 06 Feb 2009 06:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6856</guid>
		<description>I have run many performance tests on our system and one of the settings that makes a big difference is whether the Java VM is started with the &lt;code&gt;-server&lt;/code&gt; option or not.  It is not clear cut whether the application will run faster with or without this option set because it largely depends on what the application does, but is is definitely worth trying.  Our application runs about 10-15% faster under high load with the &lt;code&gt;-server&lt;/code&gt; option.</description>
		<content:encoded><![CDATA[<p>I have run many performance tests on our system and one of the settings that makes a big difference is whether the Java VM is started with the <code>-server</code> option or not.  It is not clear cut whether the application will run faster with or without this option set because it largely depends on what the application does, but is is definitely worth trying.  Our application runs about 10-15% faster under high load with the <code>-server</code> option.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dror</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6815</link>
		<dc:creator>Dror</dc:creator>
		<pubDate>Wed, 04 Feb 2009 13:49:10 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6815</guid>
		<description>http://www.javaedge.net/sessions/So%20you%20want%20to%20write%20your%20own%20benchmark.pdf</description>
		<content:encoded><![CDATA[<p><a href="http://www.javaedge.net/sessions/So%20you%20want%20to%20write%20your%20own%20benchmark.pdf" rel="nofollow">http://www.javaedge.net/sessions/So%20you%20want%20to%20write%20your%20own%20benchmark.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Gummer</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6796</link>
		<dc:creator>Chris Gummer</dc:creator>
		<pubDate>Tue, 03 Feb 2009 21:34:25 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6796</guid>
		<description>Nice article, thanks!</description>
		<content:encoded><![CDATA[<p>Nice article, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2009-01-29 at DeStructUred Blog</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6440</link>
		<dc:creator>links for 2009-01-29 at DeStructUred Blog</dc:creator>
		<pubDate>Fri, 30 Jan 2009 02:04:11 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6440</guid>
		<description>[...] Why many Java performance tests are wrong &#124; StuQ.nl (tags: performance java) [...]</description>
		<content:encoded><![CDATA[<p>[...] Why many Java performance tests are wrong | StuQ.nl (tags: performance java) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jos Hirth</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6412</link>
		<dc:creator>Jos Hirth</dc:creator>
		<pubDate>Thu, 29 Jan 2009 20:45:35 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6412</guid>
		<description>@Dimitris

The warm up phase is pretty short with the client VM. With micro benchmarks it&#039;s usually over after less than half a second. Usually you&#039;re interested in improving the performance of programs which run longer than that. Which is the reason why the warm up phase should be usually ignored (since it only skews the measured results for this kind of scenario).

E.g. no one will care if the path finding in your game is somewhat slow for the first 100msec. As long as you reach 60+ fps within a few seconds (and manage to stay there) everything is fine.

So, this isn&#039;t about being objective or not. It&#039;s about getting meaningful numbers. E.g. there are two algorithms. Lets call &#039;em A and B. A needs a whopping 500ms for compilation, but only takes 10ms per iteration. Whereas B only needs 100ms for compilation and 50ms per iteration. Would you really want algorithm B in your application?

Now... if it&#039;s a command line application, which quits after 1 second you might care for the warm up. Would be pretty pointless, but go ahead and waste your time. However, if it&#039;s run for a few minutes or hours... or even days/weeks/years... you certainly won&#039;t give a damn about warm up.

Since the warm up gets averaged out in your typical use case, you can get representative times much quicker by ignoring the warm up altogether. Without the warm up algorithm A is the clear winner.</description>
		<content:encoded><![CDATA[<p>@Dimitris</p>
<p>The warm up phase is pretty short with the client VM. With micro benchmarks it&#8217;s usually over after less than half a second. Usually you&#8217;re interested in improving the performance of programs which run longer than that. Which is the reason why the warm up phase should be usually ignored (since it only skews the measured results for this kind of scenario).</p>
<p>E.g. no one will care if the path finding in your game is somewhat slow for the first 100msec. As long as you reach 60+ fps within a few seconds (and manage to stay there) everything is fine.</p>
<p>So, this isn&#8217;t about being objective or not. It&#8217;s about getting meaningful numbers. E.g. there are two algorithms. Lets call &#8216;em A and B. A needs a whopping 500ms for compilation, but only takes 10ms per iteration. Whereas B only needs 100ms for compilation and 50ms per iteration. Would you really want algorithm B in your application?</p>
<p>Now&#8230; if it&#8217;s a command line application, which quits after 1 second you might care for the warm up. Would be pretty pointless, but go ahead and waste your time. However, if it&#8217;s run for a few minutes or hours&#8230; or even days/weeks/years&#8230; you certainly won&#8217;t give a damn about warm up.</p>
<p>Since the warm up gets averaged out in your typical use case, you can get representative times much quicker by ignoring the warm up altogether. Without the warm up algorithm A is the clear winner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: turtlewax</title>
		<link>http://stuq.nl/weblog/2009-01-28/why-many-java-performance-tests-are-wrong/comment-page-1#comment-6403</link>
		<dc:creator>turtlewax</dc:creator>
		<pubDate>Thu, 29 Jan 2009 18:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://stuq.nl/?p=339#comment-6403</guid>
		<description>&gt;&gt;The statistics you get during the warm up time should be discarded

I agree with Dimitris. Or at the very least, if you do discard warm-up, make sure that point is very well published. Its a well known issue with java, and omitting it will only fuel the criticisms.</description>
		<content:encoded><![CDATA[<p>&gt;&gt;The statistics you get during the warm up time should be discarded</p>
<p>I agree with Dimitris. Or at the very least, if you do discard warm-up, make sure that point is very well published. Its a well known issue with java, and omitting it will only fuel the criticisms.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
