Oli*_*pin 3 windows-7 virtual-memory
SysInternals 的任务管理器和进程资源管理器在 PF Delta 列中报告了 ~3000
而资源监视器仅报告 ~5 硬故障/秒
我被告知它们是相同的,所以为什么它们不显示相同的值。
PF Delta 是否包括软故障?即使我也被告知它不是。
使用 Windows 7 测试。
他们不一样。页面错误意味着访问页面需要内核的帮助。硬故障意味着访问页面需要 I/O。页面访问需要内核帮助但不需要 I/O 的原因有很多。三种最常见的是首次使用、写入时复制和访问跟踪。
首次使用意味着第一次访问已分配但从未访问过的内存区域。内核需要映射一页零填充的物理内存来为操作提供服务。因此需要内核帮助,但由于页面是空白的,因此不需要 I/O。
写时复制意味着一个页面被两个或多个进程共享,因为它们在该页面中具有相同的数据。如果一个进程在写页上写入一个副本,内核必须为该进程提供该页中数据的自己的副本,以便它不会破坏另一个进程。这需要内核帮助,因此会导致页面错误,但没有 I/O,因为数据已经在内存中。
访问跟踪意味着访问了最近未访问过的页面。内核需要知道这一点,因为它不想换出或释放最近访问过的页面。因此,内核会定期强制访问页面以触发页面错误,从而让内核有机会跟踪正在访问哪些页面。同样,由于页面数据已经在内存中,因此不需要 I/O。