我需要处理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
将大块映射到您的进程中。