Windows 7 – High Memory use by DWM.exe when minimizing programs

dwmmemorywindows 7

I'm currently using 64-bit Windows 7, I have not encountered any problem like this.

I have a Radeon Sapphire HD 6850 series graphics card accompanied by 4 GB of physical ram with virtual memory set on.

The DWM.exe service runs perfectly fine upon start-up and has an average memory usage of about 30-45MB. (Working Set Memory. Not the Private Working value)

However, upon minimizing any windows, the DWM.exe skyrockets from 30-45MB to approximately around 1GB worth of active memory use. However, if the window is an explorer window, it also skyrockets explorer.exe to around 1GB aswell, consuming about 3.14GB worth of physical memory until the window in question is un-minimized. (If multiple windows are minimized, it increases the physical memory usage 1GB per window, exceeding the amount of avaliable RAM and eventually just killing DWM.exe.)

If DWM.exe has been disabled (or manually shut-down), the system works perfectly, no abnormality memory use by explorer.exe when programs have minimized.

Is the DWM.exe program corrupted? Any way to fix this problem without disabling it permanently?

Before Minimizing an application:

before_minimize

After Minimizing an application:

after_minimize

Those are most definitely not normal numbers… To clarify, I do not have any external explorer programs in use; the only thing on my computer is Advanced System Care 5, Catalystic Control Center (AMD), Skype, Chrome, Smart Defrag, and Windows 7.

I've un-installed, re-installed Catalyst (Reverted it to an older version), nothing changed. DWM.exe still skyrockets in the Working Set (Memory) department. (Above pictures)

Best Answer

Cannot reproduce here. I've never seen anything like that. However, don't confuse Working Set and Private Working Set.

Working Set includes data which is shared between processes, like DLL files for which the same version of the DLL is used by multiple programs. So if your program only uses 15 MB of data itself and it depends on 50 MB of DLLs that are already loaded by the system, the Working Set shows both those figures combined; the Private Working Set only shows the memory that is actually consumed by running that process. So in other words, if you terminate that process, the Private Working Set memory always becomes freed-up, but the rest of the Working Set memory (probably) doesn't, because other programs are also using those resources.

That said, if you're seeing more than ~150MB of data in your private working set for both explorer and dwm, it is most likely a driver bug with your AMD drivers. Make sure you've got the latest ones; and if you do, try downgrading to the immediately prior version. Right now I think that's Catalyst 12.6 for the latest and 12.4 for the immediately prior.

This sounds like a memory leak, or you have an absolutely enormous screen size (6 monitors at 2560x1600 each or something crazy like that). I have a dual monitor system with a total of 2720x1924 resolution, which is 5,233,280 pixels... if the color data for one pixel is 32 bits (4 bytes), that means that storing one complete uncompressed image of my framebuffer requires 20,933,120 bytes, or almost 21 MB. Yet dwm.exe is using 13 MB of private working set, and 35 MB of total working set, with about a dozen windows open and all effects enabled, including minimize animations.

BTW, the framebuffer would occupy 589 MB for a single frame if you did have six 2560x1600 monitors, so even then your dwm memory usage is incongruous with your screen size, since my 21 MB framebuffer only eats a relatively smaller 13 MB of private working set in dwm.exe -- and I'm sure a lot of that is stuff like HLSL shaders for the glass effects and various DLL libraries and stuff. Also, my dwm memory usage doesn't increase when I minimize an explorer window.

Do you have any Explorer shell extensions or customizations installed? Maybe WindowBlinds? Just taking a stab at it. A bog standard graphics driver with a bog standard explorer and system DLLs just shouldn't do that. Did this start happening after you did something to your computer, or has it been like this out of the box?

Yeah. This is probably a driver bug.

Related Question