Hi David,<div><br></div><div>FYI:</div><div><br></div><div>I&#39;m not sure what&#39;s the best way to expose the stats of interned strings, but from an implementation perspective, the size of interned strings can easily be determined by scanning the StringTable in HotSpot. It can be done from both inside the HotSpot VM itself; or from the Serviceability Agent (via sun.jvm.hotspot.memory.StringTable).</div>
<div><br></div><div>The StringTable data structure keeps **references** (<i>oop</i>s) to the interned <i>String</i> objects, instead the <i>String</i>s themselves. It doesn&#39;t really matter whether or not the Strings are in PermGen or not. The table itself was never stored in the GC heap; instead it&#39;s a part of the GC root set.</div>
<div><br></div><div>Regards,</div><div>Kris Mok<br><br><div class="gmail_quote">On Fri, Nov 4, 2011 at 9:09 AM, David Schlosnagle <span dir="ltr">&lt;<a href="mailto:schlosna@gmail.com">schlosna@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">&gt; Tom Rodriguez wrote:<br>
&gt; jinfo -permstat still reports interned strings as part of the perm gen<br>
&gt; which is no longer true.  It should be dropped.<br>
<br>
</div>Out of curiosity, is there any way to determine the size of the<br>
interned strings now that they are no longer in PermGen? I assume that<br>
since 6962931 [1] with interned strings moving to the regular heap<br>
there isn&#39;t any way to compute the size of interned strings other than<br>
through a heap dump where they would show up like any other String,<br>
but I&#39;d just like to confirm.<br>
<br>
Thanks,<br>
Dave<br>
<br>
[1] <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6962931" target="_blank">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6962931</a><br>
</blockquote></div><br></div>