55

I've scoured the web, but I'm sick of reading "scan your computer for viruses" and "upgrade your RAM" on answers to similar questions to this. I understand that dwm.exe is for (simply put) caching bitmaps for things like Aero-peek and similar, but as far as I have read it shouldn't be using vast amounts of memory.

My colleague and I both have 4GB of RAM, Core 2 Duo, blah, blah -- essentially they're pretty capable. His dwm.exe is running at around 30mb, mine is currently running at about half a gig, though it does fluctuate quite a lot. This is the same while running the exact same applications (currently Zend studio, FireFox (with firemin - low memory usage), Outlook). Every so often I will get a notification asking me if I want to switch to Aero Basic because it's using too much memory, and sometimes it will just switch itself to basic and let me know why.

I know it's possible to stop it switching, but I want to know why it is using too much memory otherwise it's just papering over the cracks.

One thing to add is this seems to have started after a robbery on Monday, where two of my monitors were stolen, and I had to temporarily use a couple of alternative monitors. I am now using brand new monitors but the problem is the same. All drivers installed and working seemingly fine.

Any ideas why the usage is so high?

We are using windows 7 64-bit Professional.

10
  • Can you get any clues from Proccess Monitor?
    – jmreicha
    May 25, 2012 at 14:54
  • What kind of information would you regard as a clue in Process Monitor? Sorry, not used it a whole lot. May 25, 2012 at 15:02
  • 1
    You can drill down into the processes more and see what, if any other processes it is talking to.
    – jmreicha
    May 25, 2012 at 15:45
  • dwm.exe doesn't actually seem to show up in procmon...? May 28, 2012 at 9:31
  • 1
    Yeah ProcMon can be a little hairy. How about the sysinternals tool Process Explorer? Can you find any clues with that maybe?
    – jmreicha
    May 29, 2012 at 0:19

7 Answers 7

45

The DWM.EXE process will consume a lot of memory when you have multiple screens and the system performance is set to the default of Let Windows choose what's best for my computer. To change this:

  1. Go to Computer -> Right click and choose Properties
  2. Select the Advanced tab
  3. Select the Settings button under the Performance section. This will popup the Performance Options window
  4. On the first tab is Visual Effects. Select Adjust for best performance or Custom (and select the feature(s) you want).

I chose Custom myself and selected only the Smooth edges of fonts to reduce memory usage from 534M to 6M with running 4 windows.

7
  • 2
    Well, if you don't enable the DWM it won't use any memory of course ;)
    – Joey
    Oct 30, 2012 at 21:03
  • 3
    That's not the whole answer. I have best appearance set in the settings, and dwm.exe usually takes 80-100 MB of memory, but recently it has started sporadically spiking up to 1300 MB of RAM. If I terminate the process, it restarts automatically with normal 80 MB (and Aero style immediately applies again, so it's not like restart kills visual effects). Dec 22, 2013 at 17:06
  • 1
    Thanks, this has made my computer much faster, especially in Eclipse. Note that it turns off 'Aero' and its transparent window effects etc.
    – pjc50
    Feb 7, 2014 at 10:50
  • I first tried the hint from computerhope.com/issues/ch001182.htm to switch from (default?) Aero style to Win basic theme - and this lowered usage (but not enough for me). Next, I tried this fix and this really seems to have helped. Jun 2, 2014 at 12:25
  • 1
    You can find the properties by going Start -> Run -> sysdm.cpl which seems to be the easiest way on Windows 11 May 25, 2023 at 16:05
12

I use this batch code to refresh dwm.exe. There will be a blank screen for a second. The dwm.exe RAM usage will go back to normal.

I strongly recommend you close all of your applications to prevent program crash before executing

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

This must be run as Administrator.

2
  • 1
    Note that killing dwm.exe from task manager does not seem to work. Dec 7, 2021 at 3:53
  • Killing dwm.exe from task manager worked for me, but both my screens went black for several minutes - basically until I found this thread on a phone when searching whether I broke it or not.
    – Qwerty
    Aug 16, 2023 at 21:29
9

Since I cannot comment yet, I'll add this as additional answer. Microsoft has confirmed a memory leak in 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

In short, DWM.EXE leaks memory when status windows are open for a long time.

4
  • 4
    For further readers: On Windows 10, there might be another memory leak, mine dwm.exe grows every hour or so, after whole day it goes even up to 1 GB, and it still grows... After 2 weeks without hard restarting (I usually just hibernate) it was once 20 GB (YEP, even while I have just 16 GB of physical RAM)... Sad thing is, I reported this issue 2 or 3 times already, Microsoft does not care. May 27, 2021 at 1:04
  • 1
    Seconding what @PsychoX has said above, it's at over 1.7 GB on my Windows 10 PC.
    – AJM
    Nov 9, 2021 at 18:59
  • It's August 2022 and Windows 11 still need more than 1GB of RAM for the WM, guess this is not important enough to be fixed. Edit: I only keep the smooth fonts on and turn everything else off, so it's probably not about the config
    – DDMC
    Aug 31, 2022 at 8:05
  • 1
    So what exactly constitutes a status window? I need to get some ideas on what to look for or which windows to keep closed ("....DWM.EXE leaks memory when status windows are open for a long time")
    – Jon Grah
    Jun 3, 2023 at 1:24
8

There's a confirmed memory leak with Intel's graphics driver versions between 27.20.100.8587 and 30.0.101.1191 (not inclusive) which will cause dwm.exe to eat memory in some situations. It got up past 19GB (!!) for me before the compositor crashed. It clearly doesn't happen all the time, seeing how it took me months to notice.

As of Oct. 2022, Windows Update is still distributing a buggy driver version. Installing a newer version from Intel will resolve the issue.

Source: https://www.intel.com/content/www/us/en/support/articles/000058381/graphics/graphics-for-8th-generation-intel-processors.html

2
  • 1
    Windows Update still distributes outdated driver version which has this issue. Manually updating the driver solved memory consumption.
    – ValdikSS
    Oct 12, 2022 at 14:05
  • It seems to be ok to just kill the process and wait for a ~ 1 minute, until everything loads again.
    – Qwerty
    Oct 16, 2023 at 16:42
2

Try restarting the dwm service:

  1. Hit Win+r and type services.msc.
  2. Find Desktop Window Manager Session Manager.
  3. Click Restart the service and see if that fixes it.

Or if you want to get rid of the process all together, just click Stop.

4
  • From what I understand, restarting the computer would have the same effect as restarting DWM. And would stopping DWM be a good idea, considering it's needed? Jul 4, 2012 at 7:23
  • Technically yes, but here read this see if this helps any: howtogeek.com/howto/windows-vista/…
    – imtheman
    Jul 4, 2012 at 7:37
  • 1
    I don't see how that helps at all. Note that I don’t recommend turning this off unless you are playing games in fullscreen mode, and even then it likely won’t help increase speed. for starters, and I have indeed read this page already (I did Google before posting this question). I also said Iknow it's possible to stop it switching, but I want to know why it is using too much memory otherwise it's just papering over the cracks. and this doesn't help at all. Jul 4, 2012 at 8:11
  • 1
    Starting from Windows 7 it is impossible to stop DWM (so the service doesn't show up in services.msc)
    – marijnr
    Aug 13, 2018 at 6:54
-2

Another speed up tip is to hold the windows key and press r, type msconfig and press enter, click on boot tab > advanced options then check mark number of processors then click the down arrow and select max number of cores 2 is duo 4 is quad hit ok.
Check mark boot log and OS boot information, then in the right click make all boot changes permanent and make sure nothing else is open and hit apply then restart.
Most Microsoft windows computers only use one core by default boot settings. This works on windows 8 and 8.1 for sure. I haven't tried it on anything before that.
Good luck :)

1
  • 2
    this really doesn't sound like a good idea to be messing with this option - especially your comment "Most Microsoft windows computers only use one core by default boot settings." !!
    – Simon
    Nov 1, 2018 at 22:50
-3

i had this problem for a while and nothing really seemed to work.but i found out that after clearing my C drive, the memory usage went down.try to move unwanted programes from c to e/d drives.hope this helps you!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .