John Rose John.Rose at Sun.COM
Thu Jan 31 12:29:08 PST 2008

On Jan 31, 2008, at 11:25 AM, steve goldman wrote:

> it seems like creating an MethodDataKlass to enable tracing rather  
> than specialized C++ code like we have for other jvm structures  
> seems like overkill.

Here's another reason to put them in the heap:  You want to garbage  
collect one when its method goes away due to class unloading.

It seems to me that putting metadata in the heap isn't overkill, it's  
just how we do things.

I'm obviously missing your point:  I don't know exactly what  
specialized C++ code you're referring to (outside of the Oop/Klass  
unless it's things like what's in the SystemDictionary.  It seems to  
me that the SystemDictionary pattern is complicated enough already.
You have to walk it for GC roots, and then also manually clean up the  
C++ structures when the GC frees something.
Every time I read the class loader constraint code or symbol table  
stuff or dependency indexer the manual allocations and deletions  
scare me.

I think it's less buggy and complex to bite the bullet and describe  
chunks of data to the GC (using Oop/Klass)
and then let the GC manage the metadata graph.

-- John
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the hotspot-compiler-dev mailing list