每隔几天,我的 PC 的内存使用量就会无缘无故地增加。以下是 4 天正常运行后的典型内存使用量读数:
不过,我尝试追踪导致任何潜在内存泄漏的违规应用程序。任务管理器列出了 Google Chrome 中占用率最高的应用程序(占用率仅为 ~200MB):
关闭其他应用程序后仍有 62% 的内存在使用:
同时,poolmon.exe
节目CM16
和Proc
标签分别使用分页池和非分页池中的大量内存列出:
奇怪的是,重启电脑可以清除内存使用量,但关机再开机却不行。我猜这是因为“快速启动”功能,但我不确定它为什么会影响内存使用量。
如果重要的话,我也在使用清理内存因为我认为它有助于缓解任何内存泄漏问题。
鉴于这些,我如何才能查明导致系统内存使用率过高的原因?
更新:我尝试运行 xperf 来查看池标签上的堆栈跟踪,正如评论中所建议的那样,但我不确定如何理解我发现的内容:
答案1
来自 CleanMem 关于页面:
“内存被推送到系统缓存,而不是页面文件。系统缓存仍在内存中。程序可以立即调用它所需的内容”
也就是说,运行“CleanMem”只是将内存隐藏在系统缓存中,因此您看不到它被使用。
一般来说,Windows 中的任何类型的“内存管理”工具都是坏主意。
为什么?因为特别是在像 Windows 10 这样复杂的操作系统中,使用一些“调整”来尝试获取更多内存可能只会让现有的内存管理算法变得混乱。Windows 具有极其先进的内置内存管理、压缩、缓存和预测。不要乱动它。需要释放内存?使用 Firefox 而不是 Chrome。
另外,请查看 SysInternalsSuite 工具 procexp.exe。它比 xperf 更容易阅读:
如果您安装了 Hyper-V 并在其中运行任何虚拟机,您可能看不到使用内存的另一个进程。