WEB开发网
开发学院软件开发VC File Mapping析疑 阅读

File Mapping析疑

 2008-09-23 19:27:20 来源:WEB开发网   
核心提示: 这中间还有一个问题,那就是在映射以后和解除映射之前这个时间段内,File Mapping析疑(3),物理内存中的数据是有可能被换出的(swap out),那么,因此,相当于进行了大量的缓冲操作,换出时这些数据是被存放在数据文件中还是像一般数据那样存放在系统的页面文件中呢?同样,这也是跟映

这中间还有一个问题,那就是在映射以后和解除映射之前这个时间段内,物理内存中的数据是有可能被换出的(swap out),那么,换出时这些数据是被存放在数据文件中还是像一般数据那样存放在系统的页面文件中呢?同样,这也是跟映射的属性紧密相关的:

如果映射为readonly,那么换出时只需修改相应的页表(page table)内容,标注其已被换出即可。

如果映射为write-on-copy,那么换出将存放在页面文件中,

如果映射为write,那么换出时将写会到数据文件中。

问题三、使用File Mapping为什么可以提高访问文件的速度呢?

这是因为操作系统在处理一般读写跟处理内存映射使用的方法不一样。在处理一般的读写操作时,操作系统一般使用中断的方式,先将内容拷贝到核心虚拟内存缓冲,然后再拷贝到进程空间中;但是,处理内存映射文件时,一般使用虚拟内存管理器,无需进行中间的拷贝过程,因此速度加快。此外,像Windows这样使用页式管理虚拟内存的操作系统中,数据的换入换出都是以页为单位的(通常是4k或者8k),因为程序一般都具有时间和空间的局部性(locality),因此,相当于进行了大量的缓冲操作,有利于提高性能。

问题四、什么情况适合使用 File Mapping呢?看看人家的建议:

File mapping is effective in the following situations:

You have a large file whose contents you want to access randomly one or more times.

You have a small file whose contents you want to read into memory all at once and access frequently. This technique is best for files that are no more than a few virtual memory pages in size.

You want to cache specific portions of a file in memory. File mapping eliminates the need to cache the data at all, which leaves more room in the system disk caches for other data.

上一页  1 2 3 4  下一页

Tags:File Mapping 析疑

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接