为什么 dwm.exe 占用这么多内存?

为什么 dwm.exe 占用这么多内存?

我搜索了网络,但我已经厌倦了在类似问题的答案中看到“扫描计算机中的病毒”和“升级您的 RAM”。我知道 dwm.exe 用于(简单地说)缓存 Aero-peek 等类似程序的位图,但据我所知,它不应该使用大量内存。

我和我的同事都有 4GB 的 RAM、Core 2 Duo 等处理器——基本上它们的性能都相当不错。他的 dwm.exe 运行速度大约为 30mb,而我的则大约为半 GB,不过两者的波动确实很大。在运行完全相同的应用程序(目前是 Zend Studio、FireFox(使用 firemin - 内存使用率低)、Outlook)时,情况也一样。时不时地,我会收到一条通知,询问我是否要切换到 Aero Basic,因为它占用了太多内存,有时它会自动切换到基本模式并告诉我原因。

我知道可以阻止它切换,但我想知道为什么它会使用太多内存,否则它只是掩盖裂缝而已。

需要补充的是似乎这个问题始于周一的一次抢劫,当时我的两台显示器被盗,我不得不暂时使用几台备用显示器。我现在正在使用全新的显示器,但问题还是一样。所有驱动程序都已安装并运行正常。

知道为什么使用率这么高吗?

我们使用的是 Windows 7 64 位专业版。

答案1

DWM.EXE你有多个屏幕并且系统性能设置为默认的让 Windows 选择最适合我的电脑的选项。要更改此设置:

  1. 电脑-> 右击并选择特性
  2. 选择先进的标签
  3. 选择设置按钮下方表现部分。这将弹出性能选项窗口
  4. 第一个标签是视觉效果. 选择Adjust for best performanceCustom(并选择您想要的功能)。

Custom自己选择了并仅选择Smooth edges of fonts在运行 4 个窗口的情况下将内存使用量从 534M 减少到 6M。

答案2

我使用此批处理代码来刷新进程管理器。屏幕会空白一秒钟。进程管理器RAM 使用率将恢复正常。

我强烈建议你在执行之前关闭所有应用程序,以防止程序崩溃

@ECHO OFF 
taskkill /F /IM dwm.exe 
taskkill /F /IM conhost.exe

这必须以管理员身份运行。

答案3

由于我暂时无法发表评论,我将添加此内容作为附加答案。Microsoft 已确认 DWM.EXE 中存在内存泄漏:https://support.microsoft.com/en-us/topic/system-malfunction-because-memory-leak-occurs-in-dwm-exe-in-windows-7-or-windows-server-2008-r2-360aef3b-8df7-d104-552b-5fdb0f0ec990

简而言之,当状态窗口长时间打开时,DWM.EXE 会泄漏内存。

答案4

尝试重新启动 dwm 服务:

  1. 点击Win+r并输入服务管理器
  2. 寻找桌面窗口管理器会话管理器
  3. 点击重新开始服务,看看是否能解决问题。

或者,如果你想彻底摆脱这个过程,只需点击停止

相关内容