GC

Thread Local Heap

GC VM

スレッドごとにローカルヒープを持たせて、そのスレッドでnewされるオブジェクトはまずそこに入れましょうという話。 GCはスレッドローカルに行えるので、全スレッドを止める時間を最小限に出来る。ただしWrite Barrierで外部から参照されるのを検地する必要…

Pinned Object

GC VM

コンパクションを採用しているGCでは、GCの際にオブジェクトの再配置が発生する。 ネイティブメソッドをコールしている最中など、オブジェクトが再配置されては困る場合、そのオブジェクトをPinnedとしてマークする。 ただし、再配置できないオブジェクトが…

Write Barrier

GC VM

オブジェクトの更新を検知する仕組み。世代別GCでold領域からyoung領域を指すオブジェクトを探す為などに利用される。 Card Marking 領域をnバイトで区切り(Card)、そのCard内に存在しているオブジェクトに書き込まれたことをビットフラグの配列などに記録し…