1. ホーム
  2. java

[解決済み] "オンヒープ "と "オフヒープ "の違いについて

2022-04-23 20:59:45

質問

キャッシュ について語る オンヒープメモリとオフヒープメモリ。その違いは何ですか?それらを設定するために、どのようなJVMの引数が使用されますか?

どのように解決するのですか?

オンヒープストアとは、Javaヒープに存在する(GCの対象にもなる)オブジェクトを指します。一方、オフヒープストアは、EHCacheによって管理されるが、ヒープの外側に保存される(シリアル化された)オブジェクトを指す(GCの対象にもならない)。オフヒープストアはメモリ上で管理され続けるため、オンヒープストアより若干遅くなりますが、ディスクストアよりはまだ高速です。

オフヒープストアの管理・使用に関する内部的な詳細は、質問に貼られたリンクではあまり明らかではないので、詳細は テラコッタBigMemory オフディスクストアを管理するために使用されます。BigMemory(オフヒープストア)は、数メガバイトまたはギガバイトの大きさのヒープでGCのオーバーヘッドを回避するために使用されるものである。BigMemoryは、JVMプロセスのメモリアドレス空間を、以下の方法で使用します。 ダイレクトバイトバッファ 他のネイティブなJavaオブジェクトとは異なり、GCの対象にはなりません。