当前位置:网站首页 > 值得一看 > 涨姿势 > 正文

[系统技巧] Windows 10 桌面窗口管理器 (dwm.exe) 占用内存过高问题完美解决!

作者:观棋 日期:2023-04-09 03:19:13 浏览:12 分类:涨姿势

先来说下背景吧

测试机器为Microsoft Surface Go一代

配置为

CPU: Intel Pentium Gold 4415Y

RAM:8GB

GPU:Intel HD Graphics 615

GPU驱动版本为:27.20.100.8681

问题复现

近日,笔者发现当浏览器标签页打开过多或者正在运行的任务过多时,Windows 10 桌面窗口管理器 (dwm.exe) 的占用内存会不断增加,而系统并不会自动回收这些多出来的内存。如下图所示,此时系统的内存占用将会变得非常高。

随随便便就是好几百兆

后来笔者在网上查找相关资料,发现有许多用户都出现了类似的现象

通过对多种解决方法的粗略观察,可以发现它们都涉及降级驱动或编写脚本来解决桌面窗口管理器占用内存过多的问题。然而,这些方法都未能达到治本的效果。虽然降级驱动似乎很有效,但如果您需要使用 Windows Update,微软将在后台自动升级您的驱动,这可能会给您带来不必要的麻烦。

因此,我决定自己动手寻找问题的根本原因并提供解决方案。经过研究,我发现这是由于桌面窗口管理器的工作原理引起的。

通过查询微软的官方文档得知,桌面窗口管理器的作用大概就是管理Windows动画相关的进程,官网链接如下:桌面窗口管理器 - Win32 apps | Microsoft Docs

通过不断的问题复现,笔者发现了这样一种现象,只要一打开或关闭窗口,桌面窗口管理器的内存就会不停变化。并且内存占用会随着窗口的最小化而不断增加,即使将所有的窗口都关闭了,系统也不会回收这部分的内存,导致占用越来越高。


就像这样,后台啥也没开,内存占用就很高

笔者百思不得其解,为什么会这样呢?

后来,笔者突发奇想,既然桌面窗口管理器是跟Windows动画有关的,那么关闭所有动画后,还会不会出现这种情况呢?

说干就干!

在高级系统设置中将视觉效果设置成“调整为最佳性能,然后开始测试”

关闭动画后,多任务后台的内存占用


关闭部分程序后的内存占用

关闭到只剩浏览器时的内存占用

据此,好像可以得出结论,关闭动画效果后,桌面窗口管理器的内存回收机制似乎生效,再也不会出现那种没有什么后台应用程序时,桌面窗口管理器占用内存居高不下的情况。虽然窗口开多了以后还是会出现内存占用高的情况,但是不会无缘无故占用高,关闭所有窗口后,内存也会自己自动进行回收。问题解决

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

请填写验证码