<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Java: Analyze Performance Issue</title>
	<link>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/</link>
	<description>Good judgement comes from experience, and experience comes from bad judgement.</description>
	<pubDate>Wed, 07 Jan 2009 22:56:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: J.T. Wenting</title>
		<link>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10294</link>
		<dc:creator>J.T. Wenting</dc:creator>
		<pubDate>Tue, 24 Jun 2008 06:16:39 +0000</pubDate>
		<guid>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10294</guid>
		<description>That's not actually strange at all.
Somewhere in the code there's a place where you're loosing some object references in such a way that they become inaccessible but don't become elligible for garbage collection.
It takes time for that pool of objects to eat up enough memory to become a real problem.
At 2 million transactions a day, if you're loosing 100 bytes per transaction (not a lot), you're still loosing 200 million bytes a day (or close to 200 megabytes), which is a lot.
Those 100 bytes per transaction could be a single reference left somewhere in a static Collection that never gets released or cleaned out.</description>
		<content:encoded><![CDATA[<p>That&#8217;s not actually strange at all.<br />
Somewhere in the code there&#8217;s a place where you&#8217;re loosing some object references in such a way that they become inaccessible but don&#8217;t become elligible for garbage collection.<br />
It takes time for that pool of objects to eat up enough memory to become a real problem.<br />
At 2 million transactions a day, if you&#8217;re loosing 100 bytes per transaction (not a lot), you&#8217;re still loosing 200 million bytes a day (or close to 200 megabytes), which is a lot.<br />
Those 100 bytes per transaction could be a single reference left somewhere in a static Collection that never gets released or cleaned out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10288</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Tue, 24 Jun 2008 02:00:30 +0000</pubDate>
		<guid>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10288</guid>
		<description>Actually I do agree with you. When this problem happened, I went through the code (which is actually written 8 years back and recently revamped partially), check the OS patches, Java patches, collect performance data, etc and did modify certain part of the code which I suspect is the cause of the problem. Unfortunately we still cannot resolve it.
Reading through the Sun documentation on GC suggests that we can use the concurrent GC for best responsiveness, and RMI is doing a full distributed GC every minute by default. By tuning those parameters, I at least resolve the issue though I may not address the real problem which "maybe" is in the code.

The strange thing is that this problem only happened over time. 

Our system is processing at 20 to 30 transaction per seconds, which means approx. 2 millions transactions in a day, and the problem happens only after a day...</description>
		<content:encoded><![CDATA[<p>Actually I do agree with you. When this problem happened, I went through the code (which is actually written 8 years back and recently revamped partially), check the OS patches, Java patches, collect performance data, etc and did modify certain part of the code which I suspect is the cause of the problem. Unfortunately we still cannot resolve it.<br />
Reading through the Sun documentation on GC suggests that we can use the concurrent GC for best responsiveness, and RMI is doing a full distributed GC every minute by default. By tuning those parameters, I at least resolve the issue though I may not address the real problem which &#8220;maybe&#8221; is in the code.</p>
<p>The strange thing is that this problem only happened over time. </p>
<p>Our system is processing at 20 to 30 transaction per seconds, which means approx. 2 millions transactions in a day, and the problem happens only after a day&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10277</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Mon, 23 Jun 2008 18:51:09 +0000</pubDate>
		<guid>http://twit88.com/blog/2008/06/22/java-analyze-java-performance-issue/#comment-10277</guid>
		<description>I think you have the classification wrong here. GC is rarely the actual problem but the symptom of another problem and changing to other collectors and more exotic vm arguments is the majority of the time a masking of an issue with a short term temporary band aid. 

Kind regards,

William</description>
		<content:encoded><![CDATA[<p>I think you have the classification wrong here. GC is rarely the actual problem but the symptom of another problem and changing to other collectors and more exotic vm arguments is the majority of the time a masking of an issue with a short term temporary band aid. </p>
<p>Kind regards,</p>
<p>William</p>
]]></content:encoded>
	</item>
</channel>
</rss>
