2013-04-04 118 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内存。但是,也许你可以更形容你的问题?