任务管理器和SysInternals 的进程浏览器在 PF Delta 栏中报告约 3000
尽管资源监控每秒仅报告约 5 个硬故障
有人告诉我它们是相同的,那么为什么它们没有显示相同的值。
PF Delta 是否包含软故障?即使有人告诉我不包含。
使用 Windows 7 进行测试。
答案1
它们并不相同。页面错误意味着访问页面需要内核的帮助。硬错误意味着访问页面需要 I/O。页面访问需要内核的帮助但不需要 I/O 的原因有很多。最常见的三种是首次使用、写时复制和访问跟踪。
首次使用意味着已分配但从未访问过的内存区域首次被访问。内核需要映射一个零填充的物理内存页面来为该操作提供服务。因此需要内核帮助,但由于该页面是空白的,因此不需要 I/O。
写时复制意味着两个或多个进程共享一个页面,只是因为它们在该页面中拥有相同的数据。如果一个进程写入写时复制页面,内核必须将该页面中的数据副本提供给该进程,以免破坏其他进程。这需要内核的帮助,因此会导致页面错误,但不会导致 I/O,因为数据已经在内存中。
访问跟踪意味着最近没有被访问过的页面被访问了。内核需要知道这一点,因为它不想将最近访问过的页面调出或释放。因此,内核会定期故意强制访问页面以触发页面错误,以便内核有机会跟踪哪些页面正在被访问。同样,由于页面数据已经在内存中,因此不需要 I/O。