我使用的mmap实现CP(文件复制)命令()。 对于我映射MAP_PRIVATE源文件(正如我刚才想读)的MAP_SHARED模式模式和目标文件(如我不得不回写更改的内容目标文件)。
虽然这样做我观察,由于许多小的页面错误的性能损失的发生是由于2原因。 1)填零上的需求,同时呼吁源文件的mmap(MAP_PRIVATE)。 2)上写副本,同时调用MMAP(MAP_SHARED)的目标文件。
有没有什么办法来禁用填零点播和写入时复制?
谢谢,哈里什
我使用的mmap实现CP(文件复制)命令()。 对于我映射MAP_PRIVATE源文件(正如我刚才想读)的MAP_SHARED模式模式和目标文件(如我不得不回写更改的内容目标文件)。
虽然这样做我观察,由于许多小的页面错误的性能损失的发生是由于2原因。 1)填零上的需求,同时呼吁源文件的mmap(MAP_PRIVATE)。 2)上写副本,同时调用MMAP(MAP_SHARED)的目标文件。
有没有什么办法来禁用填零点播和写入时复制?
谢谢,哈里什
有MMAP(2)的MMAP_POPULATE标志:
http://linux.die.net/man/2/mmap
MAP_POPULATE(因为Linux 46年2月5日)的映射填充(故障前)页表。 对于文件映射,这将导致该文件预读。 后来访问映射不会被页故障被阻止。 MAP_POPULATE仅支持因为Linux 2.6.23私人映射。
应该故障前在mmapped区域的所有页面。 它应该问题(1)工作,并且可能不适合的问题(2)工作(共享)。