求解有关内存映射的文件
内存映射在海量数据的计算的问题上能使用么?
海量数据的计算 内存不可能有足够大的空间。。
所以想在硬盘上创建个8g的空文件 。。
求怎么才能把它当内存一样使用从而完成整个计算呢?
(数据要反复进行读写)
[解决办法]
只要注意操作文件读写中的文件指针偏移位置的记录,可以用全局变量记录
[解决办法]
[解决办法]
可以映射海量数据的,但是不能一次全映射到,32bit的系统最大虚地址空间是4GB,也就是映射的文件最大不能超过这个数,64bit的操作系统最大的虚地址空间是2^64,但是映射那么大的空间也不能一次处理完的,因为你的物理内存限制,反而会触发更多的缺页中断,影响性能
你的数据可以分段处理么?可以的话就先将文件分为若干段(如每段32MB),然后每次映射32MB的文件长度并处理,下一次映射文件的时候从上次结束处开始,然后循环映射&处理,直至文件处理完