これらは, 保守運用機能のためのクラス. より具体的に言うと, JMM 機能のためのクラス (See: here for details).
保守運用機能のためのクラス (JMM 機能用のクラス).
JMM に関係する雑多な処理(初期化処理など)や klassOop 等を納めた名前空間(AllStatic クラス) (See: here for details).
((cite: hotspot/src/share/vm/services/management.hpp))
class Management : public AllStatic {
内部には, JMM の処理に関連する klassOop への参照を保持している.
((cite: hotspot/src/share/vm/services/management.hpp))
// Management klasses
static klassOop _sensor_klass;
static klassOop _threadInfo_klass;
static klassOop _memoryUsage_klass;
static klassOop _memoryPoolMXBean_klass;
static klassOop _memoryManagerMXBean_klass;
static klassOop _garbageCollectorMXBean_klass;
static klassOop _managementFactory_klass;
static klassOop _garbageCollectorImpl_klass;
static klassOop _gcInfo_klass;
また, 内部には以下のような Perf データを格納している.
((cite: hotspot/src/share/vm/services/management.hpp))
static PerfVariable* _begin_vm_creation_time;
static PerfVariable* _end_vm_creation_time;
static PerfVariable* _vm_init_done_time;
Perf で公開されたデータには, それぞれ以下の名前でアクセス可能.
((cite: hotspot/src/share/vm/services/management.cpp))
_begin_vm_creation_time =
PerfDataManager::create_variable(SUN_RT, "createVmBeginTime",
PerfData::U_None, CHECK);
_end_vm_creation_time =
PerfDataManager::create_variable(SUN_RT, "createVmEndTime",
PerfData::U_None, CHECK);
_vm_init_done_time =
PerfDataManager::create_variable(SUN_RT, "vmInitDoneTime",
PerfData::U_None, CHECK);
See: here for details
Management クラス用の補助クラス.
HotSpot の起動処理(Threads::create_vm())に掛かった時間を計測するための一時オブジェクト(StackObjクラス).
((cite: hotspot/src/share/vm/services/management.hpp))
class TraceVmCreationTime : public StackObj {
TraceVmCreationTime::start() メソッドで計測が始まる. TraceVmCreationTime::end() メソッドで終了する.
Threads::create_vm() 内で使用されている (See: here for details).
内部的には, 計測終了時に Management::record_vm_startup_time() を呼び出して Management::begin_vm_creation_time フィールド及び Management::_end_vm_creationtime フィールドの Perf データに記録しているだけ.
See: here for details
See: here for details
See: here for details
See: here for details
保守運用機能のためのクラス (関連する JMM 用の Java クラスからのみ使用される) (See: sun.management.HotspotThread) (See: here for details)
sun.management.HotspotThreadMBean.getInternalThreadCount() の処理で使用される Closure. 現在存在しているスレッドの合計数を数える (See: here for details).
((cite: hotspot/src/share/vm/services/management.cpp))
class VmThreadCountClosure: public ThreadClosure {
get_vm_thread_count() 内で(のみ)使用されている (See: here for details).
VmThreadCountClosure::do_thread() ではカウンタをインクリメントしているだけ (このメソッドが各スレッドに対して一度ずつ呼び出されるので合計スレッド数が数えられる).
See: here for details
保守運用機能のためのクラス (関連する JMM 用の Java クラスからのみ使用される) (See: sun.management.HotspotThread) (See: here for details)
sun.management.HotspotThread.getInternalThreadCpuTimes() の処理で使用される Closure. 各スレッドのスレッド名と CPU 使用時間を取得する (See: here for details).
((cite: hotspot/src/share/vm/services/management.cpp))
class ThreadTimesClosure: public ThreadClosure {
jmm_GetInternalThreadTimes() 内で(のみ)使用されている (See: here for details).
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.