如果我只扫描大文件一次,那么我是否需要担心对页面缓存的影响,或者操作系统是否注意避免我的扫描导致页面缓存中的无意义流失。我想避免影响可能从页面缓存中受益的其他进程。
我考虑过用POSIX_FADV_DONTNEED不过我看到是否冲突的建议posix_fadvice,并POSIX_FADV_DONTNEED不会在Linux上任何东西。
谁能解释一下,谢谢。
POSIX_FADV_DONTNEED在 Linux 上已考虑在内;请mm/fadvise.c参阅内核源代码。每次调用 时posix_fadvise(),POSIX_FADV_DONTNEED任何相应的页面缓存都会被耗尽。
正如jthill提到的,最小化 I/O 对页面缓存影响的更好方法是使用O_DIRECT.