Request for review: 7154670: The instanceKlass _implementors[] and _nof_implementors are not needed for non-interface klass
Jiangli Zhou
jiangli.zhou at oracle.com
Tue Mar 20 09:31:15 PDT 2012
Hi,
Please review following webrev that changes the
instanceKlass::_implementors[] to an embedded instanceKlass field:
http://cr.openjdk.java.net/~jiangli/7154670/webrev.00/
The embedded implementor field is only created for interfaces. Since the
VM/compiler does not seem to use the implementor klassOop when there are
more than one implementor and doesn't access _implementor[1], the
embedded field is no longer a klassOop[2] array. It only holds one
implementor klassOop now. When more than one implementor is loaded, the
filed is set to the interface klassOop itself as a special indicator:
Null: no implementor
Implementor klassOop: one implementor
Self: more than one implementor
The instanceKlass::_nof_implementors is removed as part of the change.
For non-interface classes, this saves 12 bytes per class. For
interfaces, it also saves 8 bytes per class.
Thanks,
Jiangli
More information about the hotspot-compiler-dev
mailing list