Tuesday, October 20, 2009

.NET DLL’s Duplicated In Memory

For reading RSS feeds I use RSS Bandit which is just fine for my needs. However, I’ve often felt that RSS Bandit isn’t the most resource friendly application; on my Windows XP system with 1GB of RAM, it can feel a bit sluggish. Well this evening I thought I’d use VMMap from Sysinternals to see how much memory RSS Bandit is using – and in doing so I found something very odd.

image

The above view is a portion of the images section of RSS Bandit’s virtual memory space. Notice the duplicate DLL files loaded in memory, there are many other DLL duplications appearing, wasting a lot of memory. I counted about 28MB of memory was being wasted by duplicate DLL files. The most notable thing about this, is that all the DLL files are .NET DLL’s.

Now this actually rang a bell with me, since in the back of mind I thought I had read something about this on a forum. After some hunting around I found the original Sysinternals forum post where I had read about this duplication issue. It turns out that Microsoft have been notified about the problem and are looking into it.

Problem is that a fix won’t be coming anytime soon. If you read the last post for the Connect bug report, by Aarthi Ramamurthy, you’ll see that MS have anaylsed the problem and decided that it’s too large a change to do anything about it right now.