我們的Java程序具有樹形結構大對象,ArrayList和MultiMaps。Java大型對象存儲 - 協議緩衝區,MemoryMappedFiles
我遇到的問題是,我們已經分配了3GB的堆內存,但它仍然沒有空間。
我想知道如果在這裏任何人都可以提出一個方法來存儲外堆這些對象和讀取數據的塊放回每個處理的呼叫需要的基礎上java程序。我有興趣將它們存儲在文件中而不是其他原因的數據庫中。
我碰到了「內存映射文件」,有些人建議「協議緩衝區」上一個相關的問題,這些都是目前外星人的概念給我,想知道如果有一個簡單的方法。我也無法在這兩個概念上找到好的例子。
真的很感謝你對此的幫助。
性能是非常重要的考慮因素,我知道JVM堆分配,但我不尋找增加的JVM堆大小。
聽起來像一個* XY問題*。認爲我錯了?提供有關「大型對象」的詳細信息以及如何使用它們。告訴我們爲什麼你想探索像mem映射文件這樣的奇特解決方案。 – Andreas 2014-09-04 19:34:15
我已經把數據放在一個帶有Java的內存映射文件中,但缺點是那裏存儲的數據不是Java對象 - 它看起來像一個大字節數組。 – antlersoft 2014-09-04 19:35:08
@Andreas,謝謝你的迴應。我們將後端表數據讀入Java,並基於某些邏輯將此數據轉換爲Java數據結構 - 樹數據結構,對象ArrayList和MultiMaps。 我有Java邏輯從這些對象和數據結構讀取並根據它們的輸入處理用戶請求。 如果仍然不清楚,我真的很抱歉。希望我能提供更多細節。 而我不得不尋求奇特的解決方案。我會採納你的任何建議。 – 2014-09-04 19:45:00