GDI resource hog

For as long as I’ve had this machine, I’ve been annoyed by relatively infrequent graphics wig outs. Windows XP was running out of GDI resources and everything went downhill. Nothing could paint itself, windows couldn’t be created, and generally things went very badly. I could delay the need to reboot by closing some Windows, but I always eventually needed to reboot. I knew that something was hogging or leaking resources (while also marvelling at this problem — I thought this stupid resource constraint was fixed with 2000). I vaguely knew a tool at Sys Internals probably would tell much which program was hogging all the resources. I was too lazy to track it down, since the machine was unusable until I rebooted or closed windows and after I rebooted I figured I wouldn’t be able to tell what was leaking. And then, of course, everything was fine.

This evening I finally found it. When Windows started wigging out, I closed all the firefox windows (\~40, each with lots of tabs), emacs instances, and other stuff to buy myself some space to debug. I browsed around sysinternals on looking for an app likely show me what I needed. Process Explorer (Update 7/11/2011 Process Explorer at sysinternals appears to be gone) looked likely.

I fired it up and added “GDI objects” to the columnar display. Immediately, ASUS SmartDoctor was the clear culprit with 10,000 GDI objects. I closed it and the problem was resolved. Finally, no more rebooting. ASUS SmartDoctor is what makes my GPU quiet by toning down the fan when the card is basically idle. ASUS just can’t write software — I had already pinned another, similar problem on ASUS’s motherboard data logging app and stopped running it.

Sys internals has lots of handy utilities for figuring out what’s really happening on your machine.