2013-04-04 156 views
3

我正在用非常大的數據測試數據結構的性能。當RAM用完時寫入磁盤java

作爲臨時解決方法(see here)我想將內存寫入磁盤。

我想用非常大的數據集進行測試 - 我該如何做到這一點,以便當java虛擬機內存不足時將它寫入磁盤?

+0

對不起,我很困惑,......你在使用數據庫嗎? – 2013-04-04 00:42:34

+0

不,我正在測試van emde boas樹和其他數據結構,並且一切都在內存中。這仍然是可能的嗎? – CPlayer 2013-04-04 00:45:25

+1

我不認爲你可以告訴JVM在RAM滿了時使用文件。你將不得不編寫自己的數據結構來讀寫文件,可能會緩衝數據。 – 2013-04-04 00:46:35

回答

0

既然我們談到臨時修復在這裏你總是可以增加你的頁面文件,如果你需要一點額外的空間(在大多數Linux發行版的交換文件)

下面是來自微軟的鏈接: http://windows.microsoft.com/en-us/windows-vista/change-the-size-of-virtual-memory

的Linux: http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/

現在讓我說,這不是一個好的長期固定的,但我明白,有時候開發者只需要讓它工作。如果這是一種可以看到生產環境的東西,那麼您可能需要查看像Hadoop這樣的工具。它允許你通過多個JVM來分發你的數據處理 - 一個爲你所描述的「大數據」應用程序構建的工具

0

也許你可以使用流或者一些緩衝的流。我認爲這將是測試這種結構的最佳選擇。如果您可以使用流從磁盤讀取,並且不會創建任何其他對象(只有必要的對象),所以您可以爲您的結構提供所有jvm內存。但是,也許你可以更形容你的問題?