Githubの OpenHFT のリポジトリの ChronicleMapは、ドキュメントで次のように述べています。
Chronicle Map implements the java.util.concurrent.ConcurrentMap, that stores
its data off the java heap.
私はコンパイラを構築し、いくつかの派生言語のコンパイラ実装に貢献しました。私が取り組んだものは、すべてをスタックに割り当てます (これは、コード生成中に利用できるものです)。私は JVM と Java コンパイラに取り組んだことはありませんが、通常、クラス、ローカル変数、関数パラメーターなどのインスタンスを割り当てるために利用できるのはヒープとスタックだけであることは知っています。
ChronicalMap などのデータ構造をインスタンス化し、それらを JVM によるガベージ コレクションで使用できるようにする (そして JVM の一般的なメモリ管理で追跡する) ようにコンパイラに指示できるコードを作成する方法を誰か説明してください。機能)、しかし、ヒープから生計を立てていますか?
簡単な構造のドキュメントと関連する例を読みました。わかりますhow
が、JVM との関連で正確に何が起こっているのか、その根底にある理由は不明です。