2011-12-08 39 views
1

雖然我試圖將大量數據集添加到集合中,但我得到的是OutOfHeapError。我正在使用-Xmx1024M如何在hashMap中添加大數據集時處理「java.lang.OutOfMemoryError:Java堆空間」錯誤

ArrayListHashMap都得到了同樣的問題。

是否有任何方法來存儲/緩存將減少大型操作的內存要求的部分結果?

我需要知道表中的列(可能來自平面文件或數據庫)在內存中讀取後是否是唯一的。

請幫幫我。 在此先感謝。

+0

是的,但是它取決於數據包含的內容(你沒有說明它是什麼)但是如果可以的話,我會使用更多的內存。現在1 GB並不是那麼多。 1 GB的成本低於10美元。 –

+0

解釋更多關於你的場景。如果你只是想查看給定列的所有值或表中的唯一值,那麼你可以用一些SQL來實現這一點,我相信....解釋爲什麼你必須將它加載到內存中? –

+0

我必須加載ii到內存'casue我不能去SQL根目錄(這將有簡單明瞭的)。我必須對數據集執行一些操作來計算列的權重。 – Hasan

回答

2

使用ehcache(ehcache)它將未使用的數據存儲到硬盤,或使用番石榴的緩存(guava-libraries.googlecode)它控制緩存相關性並使未使用的記錄到期。

相關問題