![关闭所有程序后内存未释放](https://linux22.com/image/1488835/%E5%85%B3%E9%97%AD%E6%89%80%E6%9C%89%E7%A8%8B%E5%BA%8F%E5%90%8E%E5%86%85%E5%AD%98%E6%9C%AA%E9%87%8A%E6%94%BE.png)
答案1
驱动程序导致内存泄漏。查看非分页内核内存的高值(您的情况是 4.8 GB)。您的情况是超过 1 GB。您可以使用池妖查看哪个驱动程序导致高使用率。
安装Windows WDK,运行poolmon,根据P池类型对其进行排序,以便非分页位于顶部,并通过B字节来查看使用最多内存的标签。
现在查看哪个pooltag使用了最多的内存,如下所示:
现在打开 cmd 提示符并运行 findstr 命令来查看哪个驱动程序使用了此标签:
现在转到驱动程序文件夹 ( C:\Windows\System32\drivers
) 并右键单击有问题的驱动程序(intmsd.sys
如上图所示)。单击属性,转到详细信息选项卡以查找产品名称。查找该产品的更新。
如果pooltag仅显示Windows驱动程序或在pooltag.txt("C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\triage\pooltag.txt"
)中列出,则您必须使用xperf 来追踪导致使用的原因. 安装Windows SDK 中的 WPT,打开以管理员身份运行 cmd.exe然后运行:
xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 2048 -MaxFile 1024 -FileMode Circular && timeout -1 && xperf -d C:\pool.etl
捕获 30-60 秒的增长。使用 WPA.exe 打开 ETL,将池图添加到分析窗格。
将pooltag列放在第一位,并添加stack列。现在加载符号进入 WPA.exe 并展开您在 poolmon 中看到的标签堆栈。
现在找到您可以在堆栈中看到的其他第三方驱动程序。这里的Thre
标签(线程)由 G-Data 的 AVKCl.exe 使用。查找驱动程序/程序更新以修复它。
答案2
有一个功能叫做超级取回从 Windows Vista 开始,让所有额外的 RAM 都有事可做。您经常使用的程序将被缓存,以便加载速度更快。任务管理器/资源监视器输出并不总是完美的,但它不会造成任何损害。