私はOOMを使い続けるサーバーをメモリ最適化しようとしています。私の目的に役立つ最もメモリを節約するデータ構造は何ですか?
サーバーで(数による)オブジェクトのほとんどは、以下の形式をとる:
- 各オブジェクトは
- HashMapのキーが
- HashMapの値は、どの属性クラスのオブジェクトである文字列でのHashMapでありますちょうど整数と2ブール値を持っています。
重要:このようなハッシュマップの95%には1つのキーしかありません。それがハッシュマップを作成するときに当てはまるかどうかは分かります。
これらのハッシュマップは何百万もあります。
これらのハッシュマップを最適化するという別の質問がありました。コメントの誰かが、最初のサイズが「1」のHashMapsがまだ余分なメモリを占めているので、 。
このように、私の質問は、より良いメモリ効率で同じ正確なデータを格納できる、より優れたJavaデータ構造が実装できますか?
注:特定の値がキーとして存在するかどうかを調べることができる必要があります。私は考慮しましたが、[string_value、int、boolean、boolean]の5つのリストにデータを格納することを拒否しました。
は、マップのキーは変更できますか? –
@JohnKugelman - no。値の属性オブジェクトは時々変更できますが、キーは変更されません – DVK
最初の欲求を持つ人は、singletonMapについて言及しました。それは良い答えだと私は実際に提供する手がかりを持っている人に感謝する "これは、通常のHashMapがどれくらいのメモリを要しているか、これはsingletonMapがどれくらいかかります" – DVK