Start-up performance:
During loading of a shared class, we currently lookup a PackageEntry based on a class name in several places such as the following:
SystemDictionary::load_instance_class()
SystemDictionaryShared::init_security_info()
SystemDictionary::is_shared_class_visible()
InstanceKlass::set_package()
This RFE will hold on to the looked up PackageEntry in one place such as SystemDictionary::load_instance_class() and SystemDictionaryShared::load_shared_class_for_builtin_loader() and then pass it down to SystemDictionary::load_shared_boot_class(), SystemDictionary::load_shared_class(), SystemDictionary::is_shared_class_visible(), SystemDictionaryShared::init_security_info(), InstanceKlass::restore_unshareable_class_info() and InstanceKlass::set_package(), etc.
During loading of a shared class, we currently lookup a PackageEntry based on a class name in several places such as the following:
SystemDictionary::load_instance_class()
SystemDictionaryShared::init_security_info()
SystemDictionary::is_shared_class_visible()
InstanceKlass::set_package()
This RFE will hold on to the looked up PackageEntry in one place such as SystemDictionary::load_instance_class() and SystemDictionaryShared::load_shared_class_for_builtin_loader() and then pass it down to SystemDictionary::load_shared_boot_class(), SystemDictionary::load_shared_class(), SystemDictionary::is_shared_class_visible(), SystemDictionaryShared::init_security_info(), InstanceKlass::restore_unshareable_class_info() and InstanceKlass::set_package(), etc.