hotspot/src/share/vm/services/classLoadingService.cpp
void ClassLoadingService::notify_class_loaded(instanceKlass* k, bool shared_class) {
{- -------------------------------------------
(1) (DTrace のフック点)
---------------------------------------- -}
DTRACE_CLASSLOAD_PROBE(loaded, k, shared_class);
{- -------------------------------------------
(1) クラスのロード数を 1 インクリメントしておく.
(インクリメントするカウンタは,
引数で shared class だと指定されていれば _shared_classes_loaded_count,
そうでなければ _classes_loaded_count を使う)
---------------------------------------- -}
PerfCounter* classes_counter = (shared_class ? _shared_classes_loaded_count
: _classes_loaded_count);
// increment the count
classes_counter->inc();
{- -------------------------------------------
(1) UsePerfData オプションが指定されていれば,
ロードしたクラスのバイト数分だけカウンタをインクリメントしておく.
(インクリメントするカウンタは,
引数で shared class だと指定されていれば _shared_classes_loaded_count,
そうでなければ _classes_loaded_count を使う)
---------------------------------------- -}
if (UsePerfData) {
PerfCounter* classbytes_counter = (shared_class ? _shared_classbytes_loaded
: _classbytes_loaded);
// add the class size
size_t size = compute_class_size(k);
classbytes_counter->inc(size);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.