<?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: Finding memory leaks in your ColdFusion JVM</title>
	<atom:link href="http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm</link>
	<description></description>
	<lastBuildDate>Thu, 01 Jun 2017 18:51:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Brian</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-59589</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Fri, 22 Jan 2010 15:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-59589</guid>
		<description>@Michael - glad it helped!  It was A great learning experience and ultimately helped prove that softreferences under java in Tranfer ORM weren&#039;t freeing up memory like they should.  That led to a sponsored open source development project for Mark and now Transfer has a pluggable cache architecture which has solved our memory leak issues.  It is frustrating that it took so long to diagnose and solve but still better than rewriting the site or buying lots of new servers.  Good luck!</description>
		<content:encoded><![CDATA[<p>@Michael &#8211; glad it helped!  It was A great learning experience and ultimately helped prove that softreferences under java in Tranfer ORM weren&#8217;t freeing up memory like they should.  That led to a sponsored open source development project for Mark and now Transfer has a pluggable cache architecture which has solved our memory leak issues.  It is frustrating that it took so long to diagnose and solve but still better than rewriting the site or buying lots of new servers.  Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Horne</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-59588</link>
		<dc:creator>Michael Horne</dc:creator>
		<pubDate>Fri, 22 Jan 2010 13:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-59588</guid>
		<description>Well, Brian, what can I say? After using the methods above, I&#039;ve learnt a lot about the JVMs and identified some memory leaks in our code. This was sufficient to allow the process to run that was giving me major headaches.

I might even use the JRockit JVM in production as it seems to be a bit zippier than the standard one.

I found I could monitor the JVM remotely using the Mission Control plugin for Eclipse (which I installed in CF Builder).

I did find when I installled JRockit Mission Control v3.1.2 for Java 5 on our 64-bit platform that I had to copy the amd64 folder in jre\lib to i386 in the same folder. Otherwise, no valid JVM can be found. This is probably just a bad combination of circumstance tho!

Thanks again for this brilliant post :-)
--
Mike Horne</description>
		<content:encoded><![CDATA[<p>Well, Brian, what can I say? After using the methods above, I&#8217;ve learnt a lot about the JVMs and identified some memory leaks in our code. This was sufficient to allow the process to run that was giving me major headaches.</p>
<p>I might even use the JRockit JVM in production as it seems to be a bit zippier than the standard one.</p>
<p>I found I could monitor the JVM remotely using the Mission Control plugin for Eclipse (which I installed in CF Builder).</p>
<p>I did find when I installled JRockit Mission Control v3.1.2 for Java 5 on our 64-bit platform that I had to copy the amd64 folder in jre\lib to i386 in the same folder. Otherwise, no valid JVM can be found. This is probably just a bad combination of circumstance tho!</p>
<p>Thanks again for this brilliant post <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
&#8211;<br />
Mike Horne</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Horne</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-59575</link>
		<dc:creator>Michael Horne</dc:creator>
		<pubDate>Wed, 20 Jan 2010 11:06:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-59575</guid>
		<description>Wow.
Fantastic post. I&#039;d seen the Jrock stuff before, but badly explained. Will give this a go - I have a 2gb 64-bit instance that keeps running out of memory!</description>
		<content:encoded><![CDATA[<p>Wow.<br />
Fantastic post. I&#8217;d seen the Jrock stuff before, but badly explained. Will give this a go &#8211; I have a 2gb 64-bit instance that keeps running out of memory!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: charlie arehart</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57301</link>
		<dc:creator>charlie arehart</dc:creator>
		<pubDate>Mon, 27 Jul 2009 20:57:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57301</guid>
		<description>Great to hear (and no worries about covering CF7 stuff: those last two paragraphs were addressed to &quot;anyone else&quot; who may want to pick up that baton. I&#039;ll ping you in mid-august. Thanks.</description>
		<content:encoded><![CDATA[<p>Great to hear (and no worries about covering CF7 stuff: those last two paragraphs were addressed to &#8220;anyone else&#8221; who may want to pick up that baton. I&#8217;ll ping you in mid-august. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57300</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Mon, 27 Jul 2009 19:57:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57300</guid>
		<description>@Charlie - sure thing; I&#039;m really busy for the next couple of weeks but ping me mid-August and let&#039;s set a date.  I probably can&#039;t cover the CF7 stuff unfortunately; I don&#039;t really touch it any longer and don&#039;t have the time to invest in figuring out what works and what doesn&#039;t.</description>
		<content:encoded><![CDATA[<p>@Charlie &#8211; sure thing; I&#8217;m really busy for the next couple of weeks but ping me mid-August and let&#8217;s set a date.  I probably can&#8217;t cover the CF7 stuff unfortunately; I don&#8217;t really touch it any longer and don&#8217;t have the time to invest in figuring out what works and what doesn&#8217;t.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: charlie arehart</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57288</link>
		<dc:creator>charlie arehart</dc:creator>
		<pubDate>Mon, 27 Jul 2009 02:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57288</guid>
		<description>Great stuff here, Brian, of course. Thanks for organizing and sharing it. 

Would you be at all interested in offering a informal presentation on the topic, where you basically just walk through this stuff live, on the Online CF Meetup? Since it&#039;s recorded, I&#039;m sure it would be very popular. You don&#039;t need to &quot;put together a presentation&quot;. You could literally just walk through he process you describe here, live. If you&#039;re at all interested, just let me know. 

Same goes for anyone else reading this entry who may want to, either if Brian doesn&#039;t, or if you have some other twist. 

For instance, I&#039;m sure some would love to hear about doing this in any form possible while still on CF 7, which of course is Java 1.4, which lacks so many tools, though it does have at least some. If anyone has shown folks how to to tackle memory leaks (other than the obvious file upload one fixed in in CF8 or available as a hotfix), I&#039;m sure there would be an audience for that, too.</description>
		<content:encoded><![CDATA[<p>Great stuff here, Brian, of course. Thanks for organizing and sharing it. </p>
<p>Would you be at all interested in offering a informal presentation on the topic, where you basically just walk through this stuff live, on the Online CF Meetup? Since it&#8217;s recorded, I&#8217;m sure it would be very popular. You don&#8217;t need to &#8220;put together a presentation&#8221;. You could literally just walk through he process you describe here, live. If you&#8217;re at all interested, just let me know. </p>
<p>Same goes for anyone else reading this entry who may want to, either if Brian doesn&#8217;t, or if you have some other twist. </p>
<p>For instance, I&#8217;m sure some would love to hear about doing this in any form possible while still on CF 7, which of course is Java 1.4, which lacks so many tools, though it does have at least some. If anyone has shown folks how to to tackle memory leaks (other than the obvious file upload one fixed in in CF8 or available as a hotfix), I&#8217;m sure there would be an audience for that, too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Erat</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57122</link>
		<dc:creator>Steven Erat</dc:creator>
		<pubDate>Fri, 17 Jul 2009 19:38:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57122</guid>
		<description>Thanks for the quick feedback Brian.  I set the Trend preference to 0 but still don&#039;t see cf objects with filter &quot;cf*&quot;.  I do however see lots jrun objects.  I&#039;ll try running a larger app like blogcfc to see if that makes a difference.

I ran the Eclipse MAT on a CF9 heap dump.  Wow, there&#039;s an incredible abundance of information there.  Love the table of contents view better than the Overview view.  Will need to spend some time there just to understand how to best interpret the results.</description>
		<content:encoded><![CDATA[<p>Thanks for the quick feedback Brian.  I set the Trend preference to 0 but still don&#8217;t see cf objects with filter &#8220;cf*&#8221;.  I do however see lots jrun objects.  I&#8217;ll try running a larger app like blogcfc to see if that makes a difference.</p>
<p>I ran the Eclipse MAT on a CF9 heap dump.  Wow, there&#8217;s an incredible abundance of information there.  Love the table of contents view better than the Overview view.  Will need to spend some time there just to understand how to best interpret the results.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57120</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Fri, 17 Jul 2009 19:23:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57120</guid>
		<description>@Steven - thanks for the headsup about the GC flag.  I didn&#039;t have that happen to me since my GC flags were different (although I too, ran u14 on CentOS 5.3).  

On JRMC, there is an option somewhere that says to not limit small items in the heap; under preferences but I *thought* it was disabled by default.    Go to Preferences -&gt; Jrockit Mission Control -&gt; Memory Leak Detector -&gt; Trend and set the lowest heap usage to 0.

Also, a small side note, I don&#039;t think regexps work so make sure it&#039;s cf* not cf.*</description>
		<content:encoded><![CDATA[<p>@Steven &#8211; thanks for the headsup about the GC flag.  I didn&#8217;t have that happen to me since my GC flags were different (although I too, ran u14 on CentOS 5.3).  </p>
<p>On JRMC, there is an option somewhere that says to not limit small items in the heap; under preferences but I *thought* it was disabled by default.    Go to Preferences -> Jrockit Mission Control -> Memory Leak Detector -> Trend and set the lowest heap usage to 0.</p>
<p>Also, a small side note, I don&#8217;t think regexps work so make sure it&#8217;s cf* not cf.*</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Erat</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57119</link>
		<dc:creator>Steven Erat</dc:creator>
		<pubDate>Fri, 17 Jul 2009 19:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57119</guid>
		<description>Brian,

So I&#039;ve got JRockit Mission Control running (jrmc) and it successfully attaches to ColdFusion (using CF9 but previously also did CF8).  When I start MemLeak on the CF9 process id I see the view with all the Java objects.  However, when I add a filter for &quot;cf.*&quot; the table clears and no data is shown.  I noticed there&#039;s a little warning at the bottom that says &quot;ignoring objects that take less than 0.1% heap so I wonder if that could be why I don&#039;t see cf objects.  I&#039;ve run some small demo apps and loaded the CF Admin, but nothing.  Any ideas?  Thanks!</description>
		<content:encoded><![CDATA[<p>Brian,</p>
<p>So I&#8217;ve got JRockit Mission Control running (jrmc) and it successfully attaches to ColdFusion (using CF9 but previously also did CF8).  When I start MemLeak on the CF9 process id I see the view with all the Java objects.  However, when I add a filter for &#8220;cf.*&#8221; the table clears and no data is shown.  I noticed there&#8217;s a little warning at the bottom that says &#8220;ignoring objects that take less than 0.1% heap so I wonder if that could be why I don&#8217;t see cf objects.  I&#8217;ve run some small demo apps and loaded the CF Admin, but nothing.  Any ideas?  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Erat</title>
		<link>http://www.ghidinelli.com/2009/07/16/finding-memory-leaks-coldfusion-jvm/comment-page-1#comment-57118</link>
		<dc:creator>Steven Erat</dc:creator>
		<pubDate>Fri, 17 Jul 2009 18:23:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=782#comment-57118</guid>
		<description>Still going thru this and testing all the techniques.  I learned that jstat and jmap are already available on Mac OS X, but they are the Apple implementations so for example jmap behaves differently such that it did not have the -dump switch

steven-erats-macbook-pro:~ stevenerat$ jmap -dump:format=b,file=/tmp/cf9.hprof 3432
Usage: jmap [option] 
		(to connect to a live java process)


On CentOS 5.3 Linux I installed the Sun 1.6.0_14 to get the utilities, then found that jmap didn&#039;t work.

[steven@maccent ~]$ jmap -heap 31762
Attaching to process ID 31762, please wait...
sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol &quot;heapOopSize&quot; 

I remembered that the -XX:+UseParallelGC argument will not work with java debugging, so I changed it to -XX:+UseParNewGC and then it worked.</description>
		<content:encoded><![CDATA[<p>Still going thru this and testing all the techniques.  I learned that jstat and jmap are already available on Mac OS X, but they are the Apple implementations so for example jmap behaves differently such that it did not have the -dump switch</p>
<p>steven-erats-macbook-pro:~ stevenerat$ jmap -dump:format=b,file=/tmp/cf9.hprof 3432<br />
Usage: jmap [option]<br />
		(to connect to a live java process)</p>
<p>On CentOS 5.3 Linux I installed the Sun 1.6.0_14 to get the utilities, then found that jmap didn&#8217;t work.</p>
<p>[steven@maccent ~]$ jmap -heap 31762<br />
Attaching to process ID 31762, please wait&#8230;<br />
sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol &#8220;heapOopSize&#8221; </p>
<p>I remembered that the -XX:+UseParallelGC argument will not work with java debugging, so I changed it to -XX:+UseParNewGC and then it worked.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
