hotspot/src/share/vm/memory/referencePolicy.cpp
// Capture state (of-the-VM) information needed to evaluate the policy
void LRUMaxHeapPolicy::setup() {
{- -------------------------------------------
(1) アクセス頻度の基準(以下の _max_interval)として, 次のように計算した時間を使用する.
「最後のGCが終わった時点でのヒープの(潜在的な)空き容量 * SoftRefLRUPolicyMSPerMBオプションの値」
(なお, SoftRefLRUPolicyMSPerMB は, 「ヒープの空き容量 1 MB ごとの何ミリ秒の猶予を与えるか」という値.
空き容量が多ければ soft reference を消す必要はあまり無いため, 空き容量に比例して時間も長くしている模様.)
((潜在的な)空き容量とは, MaxHeapSize から最後のGCが終わった時点でのヒープの使用量を引いた数値.)
---------------------------------------- -}
size_t max_heap = MaxHeapSize;
max_heap -= Universe::get_heap_used_at_last_gc();
max_heap /= M;
_max_interval = max_heap * SoftRefLRUPolicyMSPerMB;
assert(_max_interval >= 0,"Sanity check");
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.