我需要处理3D多维数据集数据。它的元素数量可以达到数十亿。我知道我无法在Windows上分配那么多的内存。因此,我正在考虑对进程内数据库进行基于磁盘的操作。有什么更好的方法吗?也许有助力吗?

更新:我最终将不得不提供带有图的浏览功能。

Update2:以下文章似乎是使用内存映射文件的不错的解决方案。我将尝试并再次更新。 http://www.codeproject.com/Articles/26275/Using-memory-mapped-files-to-conserve-physical-mem

最佳答案

您也许可以更有效地存储数据(请阅读Bentley的“Programming Pearls”),它是稀疏数据吗?

如果不是,则内存映射文件(MMF)是您的 friend ,并允许您将MMF块映射到可以像访问其他任何内存一样访问的内存。

使用 CreateFileMapping MapViewOfFile 将大块映射到您的进程中。

09-06 06:27