在任务管理器中,您会看到桌面窗口管理器(Windows 7上的DWM.exe或以前的Windows版本)的COU使用率很高。查了一下,原来是dwm.exe占用过高,那么遇到桌面窗口管理器占用内存过高怎么解决?
桌面窗口管理器高CPU的原因主要是:
显示驱动程序不兼容。
Win10系统性能问题。
有问题的软件或应用程序。
基于DWM.exe的高CPU原因,这个线程应运而生。
小编发现,只要是浏览器标签页一开多,或者是正在运行的任务一多,桌面窗口管理器的占用内存就会变得越来越大,并且系统不会自动回收这些多出来的内存,就像下图一样。
解决方法粗略的看了一下,无外乎是降级驱动到老版本,还有有用户自己写了脚本,当桌面窗口管理器占用内存超过512MB后自动强制停止运行dwm.exe进程,以达到强制释放内存的目的。但是这些方法都不治本,降级驱动似乎很有效,但是笔者的电脑需要用到Windows Update,微软就总是自动在后台“帮我”悄悄升级了驱动。
通过查询微软的官方文档得知,桌面窗口管理器的作用大概就是管理Windows动画相关的进程,官网描述如下:
通过不断的问题复现,笔者发现了这样一种现象,只要一打开或关闭窗口,桌面窗口管理器的内存就会不停变化。并且内存占用会随着窗口的最小化而不断增加,即使将所有的窗口都关闭了,系统也不会回收这部分的内存,导致占用越来越高。
小编百思不得其解,为什么会这样呢?
后来,笔者突发奇想,既然桌面窗口管理器是跟Windows动画有关的,那么关闭所有动画后,还会不会出现这种情况呢?
说干就干!
在高级系统设置中将视觉效果设置成“调整为最佳性能,然后开始测试”;
关闭动画后,多任务后台的内存占用
关闭部分程序后的内存占用
关闭到只剩浏览器时的内存占用
据此,好像可以得出结论,关闭动画效果后,桌面窗口管理器的内存回收机制似乎生效,再也不会出现那种没有什么后台应用程序时,桌面窗口管理器占用内存居高不下的情况。虽然窗口开多了以后还是会出现内存占用高的情况,但是不会无缘无故占用高,关闭所有窗口后,内存也会自己自动进行回收,问题解决。