JIT Compiler から各メソッド呼び出し箇所 (invoke*バイトコード) のプロファイル情報にアクセスするための一時オブジェクト(StackObjクラス). 1つの ciCallProfile オブジェクトが 1つのメソッド呼び出し箇所に対応する.
((cite: hotspot/src/share/vm/ci/ciCallProfile.hpp))
// ciCallProfile
//
// This class is used to determine the frequently called method
// at some call site
class ciCallProfile : StackObj {
ciMethod::call_profile_at_bci() は以下の箇所で(のみ)呼び出されている.
Compile::call_generator() -> ciMethod::call_profile_at_bci() GraphKit::maybe_cast_profiled_receiver() -> ciMethod::call_profile_at_bci()
実際のプロファイル情報は, 対応箇所の CounterData や ReceiverTypeData から取得されている (See: ciMethod::call_profile_at_bci()).
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.