读书人

求解相干内存映射的文件

发布时间: 2012-07-31 12:33:46 作者: rapoo

求解有关内存映射的文件
内存映射在海量数据的计算的问题上能使用么?
海量数据的计算 内存不可能有足够大的空间。。
所以想在硬盘上创建个8g的空文件 。。
求怎么才能把它当内存一样使用从而完成整个计算呢?
(数据要反复进行读写)

[解决办法]
只要注意操作文件读写中的文件指针偏移位置的记录,可以用全局变量记录
[解决办法]

探讨
引用:
64位操作系统可以处理8g的文件吧

8g是举个例子 。。也有可能比8g大,而且 不是所有的机器都是64位的 。。得考虑普遍适应性

[解决办法]
可以映射海量数据的,但是不能一次全映射到,32bit的系统最大虚地址空间是4GB,也就是映射的文件最大不能超过这个数,64bit的操作系统最大的虚地址空间是2^64,但是映射那么大的空间也不能一次处理完的,因为你的物理内存限制,反而会触发更多的缺页中断,影响性能
你的数据可以分段处理么?可以的话就先将文件分为若干段(如每段32MB),然后每次映射32MB的文件长度并处理,下一次映射文件的时候从上次结束处开始,然后循环映射&处理,直至文件处理完

读书人网 >C++

热点推荐