<?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"
	>
<channel>
	<title>Comments on: The dreaded &#8220;java.lang.OutOfMemoryError: PermGen space&#8221; exception.</title>
	<atom:link href="http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/</link>
	<description>John O'Shea's musings, observations and opinions on anything and everything.</description>
	<pubDate>Sat, 30 Aug 2008 06:08:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Submundo Java &#187; Arquivo eclipse.ini para evitar o tão odiado &#8220;java.lang.OutOfMemoryError: PermGen Space&#8221; Exception.</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-75276</link>
		<dc:creator>Submundo Java &#187; Arquivo eclipse.ini para evitar o tão odiado &#8220;java.lang.OutOfMemoryError: PermGen Space&#8221; Exception.</dc:creator>
		<pubDate>Tue, 15 Jan 2008 23:01:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-75276</guid>
		<description>[...] se por um acaso alguém quiser saber mais detalhes sobre este problema, recomendo a leitura do POST dreaded “java.lang.OutOfMemoryError: PermGen space” error. [...]</description>
		<content:encoded><![CDATA[<p>[...] se por um acaso alguém quiser saber mais detalhes sobre este problema, recomendo a leitura do POST dreaded “java.lang.OutOfMemoryError: PermGen space” error. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-30478</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Thu, 26 Apr 2007 10:56:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-30478</guid>
		<description>Thanks for the info Aehso. Please let us know when there is a fix for this.</description>
		<content:encoded><![CDATA[<p>Thanks for the info Aehso. Please let us know when there is a fix for this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrei Loskutov</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26585</link>
		<dc:creator>Andrei Loskutov</dc:creator>
		<pubDate>Thu, 05 Apr 2007 19:57:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26585</guid>
		<description>Here are two interesting links related to permgen:

http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror

http://my.opera.com/karmazilla/blog/2007/03/15/permgen-strikes-back</description>
		<content:encoded><![CDATA[<p>Here are two interesting links related to permgen:</p>
<p><a href="http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror" rel="nofollow" onclick="javascript:urchinTracker ('/outbound/comment/my.opera.com');">http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror</a></p>
<p><a href="http://my.opera.com/karmazilla/blog/2007/03/15/permgen-strikes-back" rel="nofollow" onclick="javascript:urchinTracker ('/outbound/comment/my.opera.com');">http://my.opera.com/karmazilla/blog/2007/03/15/permgen-strikes-back</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aehso</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26580</link>
		<dc:creator>aehso</dc:creator>
		<pubDate>Thu, 05 Apr 2007 17:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26580</guid>
		<description>Ismael,
  My bad on the 512Mb limit link, but there are other comments (e.g. #77) that refer to 256m limits being exhausted.  This backs up anecdotal reports that we are getting from our Cape Clear Studio users (WTP 1.5.3 based) even though we install an .ini file that specifies 

-vmargs
-Xms256m
-Xmx512m
-XX:MaxPermSize=256m

out of the box.

Alex:  interesting comment on the intern'ed string literals, but still, you are inferring that a hell of a lot (or a few very large) of intern'ed strings get created.

It would be interesting to find out who or what is intern'ing any significant volume of these strings and whether they could use some other flyweight-type mechanism to optimize reuse of string values, instead of stuffing them into the VM to live forever.

It'd be *very* interesting to see if anyone is doing silly things like intern'ing xml document instances.  But in the absence of a quantifiable analysis this is all really all pure speculation.

I agree to some extent that there should be some standard controls for these limits (and perhaps the default should be higher) but perhaps this whole issue is being driven by a couple of pieces of bad code that could potentially exhaust any limit (like the hosts physical memory capacity).</description>
		<content:encoded><![CDATA[<p>Ismael,<br />
  My bad on the 512Mb limit link, but there are other comments (e.g. #77) that refer to 256m limits being exhausted.  This backs up anecdotal reports that we are getting from our Cape Clear Studio users (WTP 1.5.3 based) even though we install an .ini file that specifies </p>
<p>-vmargs<br />
-Xms256m<br />
-Xmx512m<br />
-XX:MaxPermSize=256m</p>
<p>out of the box.</p>
<p>Alex:  interesting comment on the intern&#8217;ed string literals, but still, you are inferring that a hell of a lot (or a few very large) of intern&#8217;ed strings get created.</p>
<p>It would be interesting to find out who or what is intern&#8217;ing any significant volume of these strings and whether they could use some other flyweight-type mechanism to optimize reuse of string values, instead of stuffing them into the VM to live forever.</p>
<p>It&#8217;d be *very* interesting to see if anyone is doing silly things like intern&#8217;ing xml document instances.  But in the absence of a quantifiable analysis this is all really all pure speculation.</p>
<p>I agree to some extent that there should be some standard controls for these limits (and perhaps the default should be higher) but perhaps this whole issue is being driven by a couple of pieces of bad code that could potentially exhaust any limit (like the hosts physical memory capacity).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael Juma</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26579</link>
		<dc:creator>Ismael Juma</dc:creator>
		<pubDate>Thu, 05 Apr 2007 16:27:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26579</guid>
		<description>Alex, I am aware of that and it has been discussed in the bug. However, this problem causes a lot of problems for new users. Just hang around in #eclipse (IRC channel) and you will see the amount of people who come there due to that problem. The worst case is when the VM does _not_ crash and simply consumes 100% of a cpu.

So, in my opinion, it would not be a bad thing if eclipse had a way to identify a given VM and specify specific arguments for that VM.

Having said that, I do agree that the main issue is with Sun's maximum default and I believe I made that clear in my post. Also, it's not really true that the Sun VM cannot allocate more PermGen memory. It has a starting value and a maximum value like the heap. It's unknown to me why they made the maximum value so low though. Possibly to fail fast in case of classloader leaks, but it's obviously inappropriate for current applications.</description>
		<content:encoded><![CDATA[<p>Alex, I am aware of that and it has been discussed in the bug. However, this problem causes a lot of problems for new users. Just hang around in #eclipse (IRC channel) and you will see the amount of people who come there due to that problem. The worst case is when the VM does _not_ crash and simply consumes 100% of a cpu.</p>
<p>So, in my opinion, it would not be a bad thing if eclipse had a way to identify a given VM and specify specific arguments for that VM.</p>
<p>Having said that, I do agree that the main issue is with Sun&#8217;s maximum default and I believe I made that clear in my post. Also, it&#8217;s not really true that the Sun VM cannot allocate more PermGen memory. It has a starting value and a maximum value like the heap. It&#8217;s unknown to me why they made the maximum value so low though. Possibly to fail fast in case of classloader leaks, but it&#8217;s obviously inappropriate for current applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Blewitt</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26500</link>
		<dc:creator>Alex Blewitt</dc:creator>
		<pubDate>Thu, 05 Apr 2007 15:13:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26500</guid>
		<description>The PermGen space is set aside for the permanent generation, which includes all intern()'d String literals. These also make up the constants used in Java .class files, so if you have a program that has a lot of String constants, the PermGen can fill up quite quickly. It's that, more than anything, that causes the issues; and these aren't reclaimed by ClassLoaders dying.

The fact is that Sun have invested absolutely no time in making the memory processes more flexible; instead, various arbitrary 'maximums' are defined when the process starts, even if there might be more memory available. A decent system should have no problem in dynamically allocating more PermGen space if needed; Sun's VM code (and all that use it) think one fixed-size-for-all works well.

In any case, to answer Ismael, it's possible for the option to be added to eclipse.ini -- but it can't be added by default, since the presence of a non-standard option would prevent other VMs (e.g. IBM's, Apple's) from starting up (since they don't understand the opton). And because Eclipse is inclusive, they can't do that by default.

The problem is basically Sun's hard-coded default is too small for today's apps, and there's talk of it being upped in future releases of the JVM -- but for now, hand-editing the eclipse.ini is the way forward.</description>
		<content:encoded><![CDATA[<p>The PermGen space is set aside for the permanent generation, which includes all intern()&#8217;d String literals. These also make up the constants used in Java .class files, so if you have a program that has a lot of String constants, the PermGen can fill up quite quickly. It&#8217;s that, more than anything, that causes the issues; and these aren&#8217;t reclaimed by ClassLoaders dying.</p>
<p>The fact is that Sun have invested absolutely no time in making the memory processes more flexible; instead, various arbitrary &#8216;maximums&#8217; are defined when the process starts, even if there might be more memory available. A decent system should have no problem in dynamically allocating more PermGen space if needed; Sun&#8217;s VM code (and all that use it) think one fixed-size-for-all works well.</p>
<p>In any case, to answer Ismael, it&#8217;s possible for the option to be added to eclipse.ini &#8212; but it can&#8217;t be added by default, since the presence of a non-standard option would prevent other VMs (e.g. IBM&#8217;s, Apple&#8217;s) from starting up (since they don&#8217;t understand the opton). And because Eclipse is inclusive, they can&#8217;t do that by default.</p>
<p>The problem is basically Sun&#8217;s hard-coded default is too small for today&#8217;s apps, and there&#8217;s talk of it being upped in future releases of the JVM &#8212; but for now, hand-editing the eclipse.ini is the way forward.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael Juma</title>
		<link>http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26498</link>
		<dc:creator>Ismael Juma</dc:creator>
		<pubDate>Thu, 05 Apr 2007 15:00:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.xlml.com/aehso/2007/04/05/the-dreaded-javalangoutofmemoryerror-permgen-space-exception/#comment-26498</guid>
		<description>Regarding the 512MB limit, look at the following comment. Due to a mistake from the user, the limit had not actually been increased from the default of 64MB.

Even though it's possible that there's a leak on the eclipse side, it's also very possible that eclipse with several plugins simply needs more than 64MB of PermGen.

Also relevant is that few people have problems after increasing the max PermGen size (so there's no continuous leakage).

In my opinion, Sun should either increase the default max PermGen size or provide a standard option to allow applications to increase it (instead of the "subject to change" option that exists now).

In addition, it would be nice if eclipse was able to configure the Sun VM to use a higher max PermGen size automatically.</description>
		<content:encoded><![CDATA[<p>Regarding the 512MB limit, look at the following comment. Due to a mistake from the user, the limit had not actually been increased from the default of 64MB.</p>
<p>Even though it&#8217;s possible that there&#8217;s a leak on the eclipse side, it&#8217;s also very possible that eclipse with several plugins simply needs more than 64MB of PermGen.</p>
<p>Also relevant is that few people have problems after increasing the max PermGen size (so there&#8217;s no continuous leakage).</p>
<p>In my opinion, Sun should either increase the default max PermGen size or provide a standard option to allow applications to increase it (instead of the &#8220;subject to change&#8221; option that exists now).</p>
<p>In addition, it would be nice if eclipse was able to configure the Sun VM to use a higher max PermGen size automatically.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
