私はメモリを大量に消費するアプリケーションを支援するオプションを模索しており、そうすることでTerracottaのBigMemoryに出くわしました。私が収集したものから、彼らはガベージコレクションされていないオフヒープの「ネイティブメモリ」を利用しており、シリアル化/逆シリアル化の問題により、これはヒープストレージよりも約10倍遅いようです。BigMemoryについて読む前は、通常のJNI以外の「ネイティブメモリ」について聞いたことがありませんでした。BigMemoryは、さらに検討する必要のある興味深いオプションですが、シリアル化の問題を回避できれば、ネイティブメモリで何ができるのか興味があります。
ByteBufferシリアル化の問題がない場合(たとえば、巨大なものと比較している場合)、Javaネイティブメモリは従来のヒープメモリよりも高速ですか(これにはオブジェクトが必要だと思いますか? byte[])?それとも、ガベージコレクションなどの気まぐれがこの質問に答えられないようにしますか?「測定する」がこのあたりの一般的な答えであることは知っていますが、Javaでネイティブメモリがどのように機能するかについてはまだ十分にわかっていないため、代表的なテストを設定しないのではないかと思います。