G1 garbage collection Ext Root Scanning time increases due to Class.forName (Problem, Solution, and Patch)
Ioi Lam
ioi.lam at oracle.com
Fri Jul 12 12:37:52 PDT 2013
> |BTW, I am not sure why we need a DictionaryEntry::_pd_set that could
> be appended. As far as I can see, there's only a single place that
> calls |||DictionaryEntry::add_protection_domain. I.e., when the class
> is loaded
>
> | #0 DictionaryEntry::add_protection_domain ()
> #1 Dictionary::add_protection_domain ()
> #2 SystemDictionary::validate_protection_domain ()
> #3 SystemDictionary::resolve_instance_class_or_null ()
> |
> |Did I miss something, or is this a vestigial artifact?|
|
||Sorry, I replied too quickly ....||
Here's an example case where you have multiple entries in the
||DictionaryEntry::_pd_set:||
||
||* You have A.jar and B.jar in your classpath, each with a different
signer||
||* A.jar has class C1 an||d B.jar has class C2, both of them are direct
subclasses of
java.lang.Object||
||* When C1||and C2 are resolved, a single ||DictionaryEntry is created:
{klass=java.lang.Object, loader=sun/misc/Launcher$AppClassLoader}
* This entry has two protection domains (one for A.jar and one for B.jar)
- Ioi
|
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130712/191c5cd2/attachment.html
More information about the hotspot-runtime-dev
mailing list