dwm.exe
beef potato Lv3

问题

这几天发现自己的电脑总是达到 55 ℃,但是我一般只是打开几个网页,开着 VSC, powershell 这些简单的窗口程序,甚至没有使用音乐或者动态壁纸程序。

习惯性地打开任务管理器,发现edge占用了1GB的内存,这个可以理解。但是还有一个平时不起眼的桌面窗口管理器也占用了1GB的内存,这让我怀疑是否是这个进程的问题。

打开文件位置,指向 "C:\Windows\System32\dwm.exe", 于是谷歌了这个软件的内存占用,发现很早就有关于dwm.exe内存泄露的讨论,我的电脑是win11, intel core i5, 10th GEN, 同时Intel 官方也给出了对应的解决办法,安装更新的 Intel UHD Graphics 驱动.

于是我安装了 2023/4/30 所能获取的最新版,31.0.101.2114。下载的安装程序将近1GB, 安装之后,我发现自己的显卡是GeForce MX250.

问题在于,我不知道更新Intel的驱动是否有助于问题的解决,实际上我直接使用任务管理器结束了dwm.exe的进程,它会自行重启,重启后的内存占用在100MB左右。打算测试一下其是否仍然会随着时间不断积累,今天就不关机了,等到明天中午再看看电脑的内存占用情况。

重新安装了 Nvida的显卡驱动, 网址, dwm.exe的内存占用仍然很高。

理想的内存占用量大致在60mb左右。而且GPU的负荷高于CPU的负荷,这说明GPU并没有被充分利用,我的硬件可能出问题了。

然后自己的CPU, GPU占用实际上非常正常,可能是自己大惊小怪了。


潜在的解决方法

利用NVIDA的更改Phix设置,默认的设置改为使用独立显卡 NVIDA Geforce MX250, 初始阶段内存占用为67 MB, 比较理想。

GPT4

提问

我的电脑是windows11, 显卡Nvida Geforce MX250, CPU intel core i5 10th , 由于dwm.exe 占用大量内存,甚至达到1GB,电脑经常在运行少量程序时发生风扇启动,持续发热达到55℃。已知没有病毒感染,请问有什么解决方法可以降低dwm.exe的内存占用,使之达到理想的60MB?

回答

dwm.exe(桌面窗口管理器)是Windows 11的一个组件,负责渲染窗口和特效。虽然它是系统的核心部分,但内存占用过高可能导致电脑发热和性能下降。以下是一些建议,可以尝试减少dwm.exe的内存占用:

关闭视觉效果:

在开始菜单中搜索“性能”,点击“调整计算机的性能和外观”。

在“性能选项”窗口中,选择“调整为最佳性能”。这将禁用大部分视觉效果,从而减少dwm.exe的内存占用。

更改壁纸和主题:

选择简单的壁纸或纯色背景,以减少dwm.exe的内存占用。避免使用动态壁纸或幻灯片。此外,尝试使用基本的Windows主题,而非第三方主题。

更新显卡驱动程序:

访问NVIDIA官方网站,检查是否有适用于GeForce MX250的最新驱动程序。更新显卡驱动程序可能有助于解决dwm.exe的问题。

检查正在运行的应用程序:

一些应用程序可能与dwm.exe不兼容,导致内存占用异常。通过任务管理器检查正在运行的应用程序,尝试关闭可能导致问题的应用程序。

重置dwm.exe进程:

如果以上方法都没有效果,可以尝试手动结束dwm.exe进程。按下Ctrl+Shift+Esc打开任务管理器,找到dwm.exe进程,右键单击,然后选择“结束任务”。系统将自动重启dwm.exe进程。

请注意,降低dwm.exe的内存占用可能会影响系统的视觉效果。在尝试这些方法之前,请先备份重要数据,以防万一。

问题仍然存在

第二天打开电脑,不到一个小时,dwm.exe 的内存占用就达到了500MB+, 并且仍然不断积累,因此电脑的问题并没有解决。结合以前的经验,不会是壁纸的分辨率的问题,其实是否是显卡驱动的问题也非常可怀疑,因为以前似乎没有发现这种问题。最可能的原因是某个程序对其进行了修改,导致了不断增加的内存占用。
而最近我对电脑最大的改动应该是安装了BCUninstaller, 以及右键管理菜单的软件。对注册表的修改是否会导致这一问题?

重新安装了Intel的驱动程序,位置默认储存在C盘。第二个小时只有90MB, 看起来合理一些。如果在更新所有的显卡驱动之后还没有解决这个问题,之后就看看自己安装的程序有什么会导致这个冲突。再然后就是写脚本检测 dwm.exe 的内存占用,定时执行,占用过高就杀掉进程。

自动更新

第三天,windows自己联网下载了Intel的显卡驱动,版本号为27.20.100.8984,然而我自己下载的软件版本号为 31.0.101.2121,同一时间我的桌面窗口管理器达到了170MB的内存占用,因此需要禁用windows对显卡驱动的更新。

windowsHub里有对应的解决方法,即手动禁用windows对特定软件的更新,或者对windows隐藏对应的硬件。我同时采用了这两个办法,潜在的问题是,我可能无法正常地安装其他的驱动,未来如果出现了更新的驱动程序,可能需要倒退自己的设置。

记录设置:

  1. wushowhide.diagcab tool,隐藏了INtel的显卡驱动更新。
  2. sysdm.cpl, 禁止自动联网下载生产商家的驱动程序和图标。