エントリを読み書きする必要がある DirectByteBuffer にハッシュ マップ (最大 1,000,000,000 エントリ) を格納したいと考えています。ハッシュマップには、文字列キーとシリアライズ可能なオブジェクトが含まれます。しかし、ハッシュ マップを全体としてシリアル化し、それを Byte Buffer として保存すると、ヒープ メモリに問題が発生する可能性があるたびに逆シリアル化する必要があります。キー値を DirectByteBuffer に格納し、キーを検索して、最適化された方法で値を取得できる他の方法はありますか? PS : インキャッシュ ソリューションが必要です。また、量が多いため、オブジェクト (ハッシュマップの値になります) を Java ヒープから解放する必要があります。
質問する
759 次
1 に答える
0
DirectByteBuffer を使用すると、ネイティブ メモリを使用することになります。このパスをたどる理由は、ヒープメモリに 1000000000 を格納したくないからだと思いますか? Java のメモリ使用量が気になる場合は、JVM の最大ヒープ サイズを設定してこれを処理できますか? (つまり -Xmx )? 最終的な結果は同じである必要があり、ネイティブ メモリについて心配する必要はありません。これについて説明する記事は次のとおりですhttp://viralpatel.net/blogs/jvm-java-increase-heap-size-setting-heap-size-jvm-heap/
于 2013-09-04T04:10:55.733 に答える