約 50,000 個のオブジェクト (したがって 50,000 個のキー) を に挿入しようとしていjava.util.HashMap<java.awt.Point, Segment>
ます。ただし、OutOfMemory 例外が発生し続けます。(Segment
私自身のクラス - 非常に軽量 - 1 つのString
フィールドと 3 つint
のフィールド)。
スレッド「メイン」の例外 java.lang.OutOfMemoryError: Java ヒープ領域 java.util.HashMap.resize (HashMap.java:508) で java.util.HashMap.addEntry (HashMap.java:799) で java.util.HashMap.put(HashMap.java:431)で bus.tools.UpdateMap.putSegment(UpdateMap.java:168) で
仮想メモリ用の空き RAM と HD スペースの両方で、マシン上で利用可能なメモリが十分にあることがわかっているので、これは非常にばかげているように思えます。
Javaがいくつかの厳しいメモリ要件で実行されている可能性はありますか? これらを増やすことはできますか?
に奇妙な制限がありHashMap
ますか?自分で実装する必要がありますか?他に注目すべきクラスはありますか?
(2GB RAM の Intel マシンで OS X 10.5 の下で Java 5 を実行しています。)