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
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-compiler-dev