利用内存映射文件扩充程序可用的内存[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 hszj 的 blog

 

                    利用内存映射文件扩充程序可用的内存

windows利用页交换文件来扩充应用程序实际可用的内存,而不仅限于实际的32兆或64兆物理内存。但是windows的页交换文件是所有程序共用的,所以我们的程序要想获得更大的内存还是比较困难,比如600兆或者更多。难道就没有办法了吗?windows提供的内存映射文件为我们提供解决问题的途径。

在硬盘上建立一个600兆的文件,然后将它映射到我们进程的地址空间,windows会返回一个指向这块内存地址的指针,我可以像使用一个600兆的大数组一样使用该指针,windows会为我们做好从硬盘文件到内存和从内存到硬盘文件的交换工作,就像我们使用windows本身的虚拟内存一样,不用我们费一点心思,而且速度很快。

具体方法如下:

//在硬盘上建立一个文件,访问标志为可读写

hfile := createfile(pchar(filename), generic_read or generic_write, 0, nil, open_always, file_attribute_normal, 0);

本文关键:内存映射文件
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top