Frogboy Frogboy

Memory use myths

Memory use myths

Customization software is not resource intensive

I'm not sure where the myth began. But somewhere down the line, a false belief has turned into pseudo-fact amongst some people that customization software uses a lot of memory.  That's never been the case. Not even in the beginning.

At the dawn of Windows customization, software had to run on Windows 95 which only had 128K (that's kilobytes) of GDI resources. Customization software ate up a lot of those GDI resources since they were reserved for the user interface.  But even in 1995, 16K of memory was trivial. It's just that early versions of Windows were so limited in their GDI resources that it was a problem.

But Windows 2000 and Windows XP have never had any such problem.  And yet, we still see some uninformed, but vocal, user claim that <Program X> is "bloated" and uses a "ton" of memory.  Those people come in two forms:  The guy who really has no idea what he's talking about and the guy who thinks 10 megabytes of memory is a "ton" of memory.

The former guy is annoying because he matches his ignorance with his prolific posting.  The latter guy makes you wonder if their source of income is mom's allowance or something.  I can buy a 256 meg stick of memory for my PC for around $20. 

So let's get this out of the way: Desktop customization programs do NOT use much memory.

Here's WindowBlinds wbload.exe process use:

That's 576K.

Here's DesktopX:

That's only a couple megabytes of memory and it's running a useful object in this instance.

I could go on through a variety of programs both made by Stardock and made by third parties. None of them are "memory hogs".  You can certainly load up enough stuff with something like DesktopX to make it use a ton of memory.  Graphics, animation, etc. has to be stored somewhere.  But that's not the desktop customization's fault any more than it's Photoshop's fault if the user loaded a gigabyte sized image.

So next time someone tries to claim that some desktop customization program is "bloated" or something, point them here.

111,668 views 94 replies
Reply #26 Top
Hmmmmm........

A bit different for me. I'm only using DesktopX. That uses about 33000 KB each time I run it.

No problem though considering I have 768MB on my laptop to use . Never really used more than 300MB though .
Reply #27 Top
Maybe you should rephrase that to "Haven't come across anything similar for Windows." as you get that using Konqueror under Linux.

Heh, you got me there.

A bit different for me. I'm only using DesktopX. That uses about 33000 KB each time I run it.

DesktopX's memory usage differs alot depending on the amount of objects loaded.
Reply #28 Top
Well I thought everyone on this site had everything fully decked-out. I thought my million DesktopX objects was like everyone else...

I was wrong.
Reply #29 Top
Hmm, I've beat people. I'll get a screenie here, but my wbload is in the 200K's.
Reply #30 Top
The bare truth is that Windows Blinds not only loads that small exe file but also loads the wblinds.dll and wbhelp.dll seperately for each and every program that is loaded on the computer.
Reply #31 Top
People used to say this stuff about Winamp and Talisman and all the rest. Granted, when you had 32 megs of ram, it sucked to spend 10 of it on a bloated app or skin.

I have a gig of ram with room to upgrade to 2 now. How anal-retentive would I have to be to worry about 10 megs of ram when the average game uses hundreds...

One thing I always noticed is that people who dissed a program for using too much ram usually espoused homegrown solutions that used very little ram at first, but were so riddled with leaks that leaving it running for more than an hour crashed your system...
Reply #32 Top
Having your web browser open to post complaints uses about 40-50 TIMES as much memory as Windowblinds... (My current wbload is using 490k, and Firefox is using 22,000k.)
Reply #33 Top
I'm sorry, I read that wrong... Firefox is using 38,000k... so that's about 75 TIMES as much!!
Reply #34 Top
using Konqueror under Linux.


You mean Konqueror under KDE under Linux.

Firefox works fine under Linux.
So does IE. (when using Wine)
Reply #35 Top
In order to control the appearance of the programs, WinBlinds has to inject its own programs into EVERY program that it skins. And any program must reside in the memory when it runs. That reveals although the main program of WinBlinds does not need much ram, once it is enabled, the total ram usage will be much more than it was before. Further more, when the computer runs out of ram, it will use the hard disk to emulate real memory. But this will slow down the system perforamce as hard disk is much slower than ram.
Reply #36 Top
" In order to control the appearance of the programs, WinBlinds has to inject its own programs into EVERY program that it skins. And any program must reside in the memory when it runs. "


Mugi Mai: I suggest some basic programming. The kind of memory storage redundancy you describe is uncalled for, and probably impossible, unless a developer knew every program on your machine and skinned them all separately.

Learn how your OS works and it will make more sense. WB sits between programs and you on the OS level, like one skin for all your Windows UI, not a separate skin for each program. You are under the impression that WB starts over and skins every program individually. It doesn't, no more than Windows itself does.

So WB would be no better or worse in terms of resources than Windows is, beyond the varying weight of each theme,and the architecture to implement it. People spreading uneducated opinions like that are what get these nasty myths started in the first place.
Reply #37 Top
I just want to explain that it is not correct only concern about the memory usage of the main process (in fact, it is only the loader/monitor program).

Further more, it is common sense for programmers that winblinds CANNOT USE NO RAM for the programs it skins. The skin data on disk can be shared, but still other resources are necessory for rendering a skin.

1) In order to draw a complex skin, winblinds has to maintain a list of all the components, to record their position, status etc. As more windows are created, more memory are taken up by these extra record of the components.

2) WinBlinds inject its own DLLs (the programs for skinning) to every thread it skins. I suppose these DLLs must create GDI bitmap objects so that the skin can be paint on the DCs (Device Context). An GDI bitmap object contains a BITMAP or DIBSECTION structure plus a buffer for its pixels. And GDI bitmap objects are not shared among processes. So memory redundancy is much greater than as you think.
Reply #38 Top
I dunno about you guys but I have a serious problem with OD and FF competing for memory or CPU power or somthing. Either one runs fine without the other running but when both are going, FF gets so horribly laggy that I'm on the verge of getting rid of OD altogether.
Reply #39 Top
Mug Mai: You are describing per-app skinning, as if every program running had to be individually defined by WB and skinned separately. For that to be true, a skinner would have to make a windowblinds UI for every program possible.

If we were dealing with applications that had no native Windows UI, and took total responsibility for their own display, you'd be right. Windowblinds wasn't designed to skin non-standard, free-form apps like Winamp or totally window independant game UI, though, that's why it's beneficial to exclude the ones that don't follow the standardized Windows design.

A lot of the jobs you seem to be putting off on WB are being done by Windows and the programs themselves. Maybe Brad would like to explain the app/Windows/WB relationship further, I have modding to do...
Reply #40 Top
As far as I know, Mug Mai is correct and BakerStreet is wrong. BakerStreet, read up some basic Win32 programming handbook before blurting out like this.
Reply #41 Top
2) WinBlinds inject its own DLLs (the programs for skinning) to every thread it skins.


I can verify that, if you don't trust me you can check for yourself. download Process Explorer from www.sysinternals.com, then go on the find menu -> find dll -> enter wblind.dll


(image hosting by www.putfile.com)

As you can see the wb dlls are loaded for every process that has a window.

On my system, which currently has 5 open windows (+ some systray apps) windowblinds uses 6108KB of memory, and I think I can live with that
What I'm actually trying to say with this post is that windowblinds uses more memory than just what you see in windows' own process explorer, but it still doesn't use very much..
Reply #42 Top

I suppose the default XP GUI appearance is created by magic......nothing 'loads' to skin/create it.

Or is it just one of those invisible processes....like elves at the bottom of the garden...they're there...you just don't see them....

Reply #43 Top
I suppose the default XP GUI appearance is created by magic......nothing 'loads' to skin/create it.



That is why power users use the classic win 98 themes.
Reply #44 Top
i believe what has confused people with memory is the number of threads that programs use. since threads and memory work with each other, somewhere i think that the high number of threads became mistakenly confused to be the amount of consumption of memory. just a thought!!
Reply #45 Top
I think the confusion is that people think that just because the windowblinds DLL is loaded, that the theme itself has to be loaded for every running window. Thus the statement above:

"As more windows are created, more memory are taken up by these extra record of the components."


I think that can easily be proved false by loading a 2 meg windowblinds skin and about 40 windows. Not that it matters, they just KNOW they know more about windows programming than anyone else, so let them think what they want. I can check my ram without windowblinds loaded, unload wb, and then check again and do the math on the difference. It doesn't add up to the redundancy they claim it does.

If they want to waste hours piddling over 10 megs of ram in the face of such a massive effect, let them. Most of us, and most "windows programmers" were beyond that 5 years ago.
Reply #46 Top
It doesn't add up to the redundancy they claim it does.



This is what I found -

------------------------------Unskinned--------Skinned------Difference
Firefox 1 window open-----25,912 K--------34,912 K------9,000 K = 8.79 M
Firefox 2 window open-----26,492 K--------38,184 K------11,692 K = 11.42 M
Firefox 3 window open-----28,636 K -------41,652 K -----13,016 K = 12.71 M


(Memory = Mem Usage + VM Size)

Average WB Skin size = 2000 K

What I want to say is that WB does require a significant amount of memory but I feel that it is a small price to pay for the amount of functionality and eye candy it adds.
Reply #47 Top


Reply #49 Top
'myLonghorn'
Reply #50 Top
I usually look at the virtual memory column when finding out what is slowing my computer.

Nevertheless, DX, Windowblinds and even CursorXP are pretty low.
Nothing breaks 3MB and goes as low as 945kb