我們有一個應用程序的一部分,比如說需要讀取超過內存限制的數據量的20%的時間。雖然我們可以增加內存限制,但是我們不願意這麼做,因爲在大多數情況下不需要時,它需要高分配。如何處理大型數據列表
我們正在考慮使用自定義的java.util.List實現在我們像這樣點擊峯值負載時後臺恢復到磁盤,但是在較輕的情況下會保留在內存中。
數據一次加載到集合中,隨後迭代並處理,然後丟棄。它不需要在集合中進行排序。
有沒有人有這樣的做法優點/缺點?
是否有一個開源產品提供某種類似List的List impl?
謝謝!
更新:
- 並非是厚臉皮的,但通過「巨大」我的意思是超過內存量我們願意而不在同一硬件上的其他進程的干擾來分配。你還需要其他什麼細節?
- 該應用程序本質上是一個批處理器,可從多個數據庫表中加載數據並在其上執行廣泛的業務邏輯。列表中的所有數據都是必需的,因爲彙總操作是邏輯完成的一部分。 STXXL equivalent in Java
你能更好地定義一個'巨大'的數據量和內存限制嗎? – 2009-11-04 00:44:00