クラスのロード/アンロード処理が行われるたびに ClassLoadingService オブジェクト内の PerfData に統計情報が蓄えられていく.
sun.management.ClassLoadingImpl クラスのメソッドは, 単にその統計情報を取得するだけ.
ClassFileParser::parseClassFile() -> ClassLoadingService::notify_class_loaded()
ClassFileParser::parse_method() -> ClassLoadingService::add_class_method_size()
SystemDictionary::load_shared_class() -> ClassLoadingService::notify_class_loaded()
Dictionary::do_unloading() -> ClassLoadingService::notify_class_unloaded()
sun.management.ClassLoadingImpl.isVerbose()
-> sun.management.VMManagementImpl.getVerboseClass()
-> Java_sun_management_VMManagementImpl_getVerboseClass()
-> jmm_GetBoolAttribute() (JMM_VERBOSE_CLASS を引数として呼び出される)
-> ClassLoadingService::get_verbose()
sun.management.ClassLoadingImpl.setVerboseClass()
-> Java_sun_management_ClassLoadingImpl_setVerboseClass()
-> jmm_SetBoolAttribute() (JMM_VERBOSE_CLASS を引数として呼び出される)
-> ClassLoadingService::set_verbose()
sun.management.ClassLoadingImpl.getTotalLoadedClassCount()
-> sun.management.VMManagementImpl.getTotalClassCount()
-> Java_sun_management_VMManagementImpl_getTotalClassCount()
-> jmm_GetLongAttribute() (JMM_CLASS_LOADED_COUNT を引数として呼び出される)
-> get_long_attribute()
-> ClassLoadingService::loaded_class_count()
sun.management.ClassLoadingImpl.getUnloadedClassCount()
-> sun.management.VMManagementImpl.getUnloadedClassCount()
-> Java_sun_management_VMManagementImpl_getUnloadedClassCount()
-> jmm_GetLongAttribute() (JMM_CLASS_UNLOADED_COUNT を引数として呼び出される)
-> get_long_attribute()
-> ClassLoadingService::unloaded_class_count()
sun.management.ClassLoadingImpl.getLoadedClassCount()
-> sun.management.VMManagementImpl.getLoadedClassCount()
-> sun.management.VMManagementImpl.getTotalClassCount()
-> (同上)
-> sun.management.VMManagementImpl.getUnloadedClassCount()
-> (同上)
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.