オンヒープおよびオフヒープ・メモリー

オンヒープ・メモリーは、ガベージ・コレクタによって管理されるメモリーの領域であるJavaヒープ内のメモリーです。Javaオブジェクトはヒープ内に常駐します。ヒープは、アプリケーションの実行中に拡大または縮小することがあります。ヒープが一杯になると、ガベージ・コレクションが実行されます。JVMは、使用されなくなったオブジェクト(到達不可能なオブジェクト)を識別し、メモリーをリサイクルして、新しい割当て用の領域を作成します。

オフヒープ・メモリーは、Javaヒープ外のメモリーです。JavaアプリケーションでCなど異なる言語の関数やメソッドを呼び出すには、その引数がオフヒープ・メモリー内にある必要があります。ヒープ・メモリーとは異なり、オフヒープ・メモリーは不要になった際にガベージ・コレクションの対象になりません。オフヒープ・メモリーの割当て解除の方法とタイミングを制御できます。

オフヒープ・メモリーと対話するには、MemorySegmentオブジェクトを使用します。MemorySegmentオブジェクトにアリーナを割り当てます。これにより、MemorySegmentオブジェクトに関連付けられたオフヒープ・メモリーの割当てをいつ解除するかを指定できます。