本文转自http://www.cnblogs.com/KevinT/p/3823286.htmlhtml
mmap与read/write两条路线对文件的访问比较缓存
咱们知道不管是经过mmap或read/write访问文件在内核中都必须通过缓存, 当须要从文件读写内容时,都通过内存拷贝的方式与内核中的缓存进行通信。htm
1. 用read/write方式,用户须向内核指定要读多少,内核再把获得的内容从内核缓存拷向用户空间;写也需要有一个大体如此的过程。blog
2. mmap的做用是经过把文件的某一块内容映射到用户空间上,即将以前所述的内核缓存映射到用户空间,这样就能够直接经过内核缓冲池读写这一块内容,这样一来就少了内核与用户空间的来回拷贝,因此一般更快。内存
因此mmap的优点就是相对于read/write就是减小了一次内核缓存到用户空间内存的拷贝开销,可是 mmap在创建映射时必须制定映射区域,因此这种方式只适用于更新、读写一块固定大小的文件区域,而不能不断的以增加方式向文件写内容。get