如果我只扫描一次大文件,那么我是否需要担心对页面缓存的影响,或者操作系统是否会注意避免我的扫描导致页面缓存中无意义的搅动。我想避免影响可能受益于页面缓存的其他进程。
我考虑过使用,但是关于是否在 Linux 上执行任何操作,POSIX_FADV_DONTNEED
我看到了相互矛盾的建议。posix_fadvice
POSIX_FADV_DONTNEED
有人可以澄清一下吗,谢谢。
答案1
POSIX_FADV_DONTNEED
在 Linux 上已考虑在内;看mm/fadvise.c
在内核源代码中。每次调用 时posix_fadvise()
,POSIX_FADV_DONTNEED
任何相应的页面缓存都会被耗尽。
作为杰蒂尔如上所述,最小化 I/O 对页面缓存影响的更好方法是使用O_DIRECT
.