2016-11-20 19 views
-1

私はjavaでHashMapを使用していますが、それはあまりにも多くのメモリを消費することに気付きましたが、要素をすばやく検索する必要があります。Java HashMapメモリ、それを減らす

ハッシュマップのメモリを減らすために、私は内部にどのくらいの要素を入れるのか分かっていますか?

私はどれくらいの情報を保存するのか分かりますが、わかりません。

私の問題はファイルを読むことであり、このファイルには2つのセットに分割された情報があり、これらの情報を同じ構造体に接続する必要があるためです。

私はHashMapが正常に動作するためには、それが得たメモリの25%以上を無駄にしていることを知っています。

ありがとうございました。

+1

あなたはそれがあまりにも多くのメモリを消費することに注意しているどのように? – chrylis

+0

私はプログラムを起動するとき、私はいくつかの 'System.out.println'を入れて、次のような情報を与えてくれるからです:' Long usedMemory = Runtime.getRuntime()。totalMemory() - Runtime.getRuntime()。freeMemory(); ' – snorlax

+3

その出力は本質的に無意味です。アプリケーションを適切にプロファイリングしていない限り、(1)問題がある、(2)地図と少しでも関係があると推測する理由はありません。 – chrylis

答えて

0

使用:

new HashMap<>(capacity); 
+0

それは* less *メモリを使用することはできません。あなたはそれを(おそらく)より大きい容量に事前に割り当てるだけなので、そこで自動拡張する必要はありません。 – Andreas

+1

@Andreas:OPは格納される要素の正確な数を知っているので、これ以上割り当てる必要はありません。 – Karol

関連する問題