一、内存映射文件概述
不论32位系统还是64位系统,机器内存毕竟是有限的,如果要处理大文件的话,不可能全部加载到内存中进行处理,所以就需要用到内存映射文件。
内存映射文件将文件的内容映射到应用程序的逻辑地址空间。 内存映射文件使程序员能够处理极其大的文件,因为内存可以同时进行管理,并允许对文件进行完整的随机访问,而无需查找。 内存映射文件也可以在多个进程之间共享。
是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。
C#中,System.IO.MemoryMappedFiles 这个类就提供了内存映射文件的功能。文档地址