【发布时间】:2012-03-06 17:05:42
【问题描述】:
我需要处理 3D 立方体数据。它的元素数量可以达到数十亿。我知道我无法在 Windows 上分配那么多内存。所以我正在考虑使用进程内数据库进行基于磁盘的操作。有没有更好的方法来做到这一点?也许有什么提升?
更新:我最终将不得不提供带有绘图的浏览功能。
Update2:以下文章似乎是使用内存映射文件的一个很好的解决方案。我会尝试并再次更新。 http://www.codeproject.com/Articles/26275/Using-memory-mapped-files-to-conserve-physical-mem
【问题讨论】:
-
嗯,Win7 Pro 最高支持 192GB,我觉得不止几个 :)
-
请解释您要如何处理您的数据。有了这么多元素,您真的想仔细考虑您要完成的工作。您将运行的算法将确定适当的数据结构。例如,我想你可能实际上在谈论一个 1000x1000x1000 的立方体,也许大多数元素都是空的。也许你想要一个八叉树。但也许需要一些完全不同的东西。我们需要更多信息。
-
@AlanBaljeu 我希望你的猜测是正确的。但立方体是具有另一个密集维度的图像。所以我需要这么大的尺寸,所有元素都同样重要。
-
@david:我们在这里谈论的是用户模式吗?如果它是 32 位进程,则绝对限制应该是(通常)2 GiB 的 RAM,而在 64 位中,由 Igor 命名的限制适用。带 PAE 的 32 位仍然具有与不带 PAE 相同的每个进程限制,但总体上支持高达 64 GiB,IIRC。
-
查看我对这个问题的回答:stackoverflow.com/questions/9227653/… - OP 遇到了类似的问题。