Process Icon Memory Use
Process icons in the 'All processes' tab account for approximately 50% of the private virtual memory Process Lasso's GUI utilizes. I've always offered the option to turn these icons off, for the especially RAM conscious - and you can, of course, close the whole GUI.However, in this new beta series I'm working on some optimizations to the icon code that will reduce the RAM they utilize by a good portion. Like any programmer writing a task manager style listview display of running process, I took the simple and least complex approach of allocating an individual icon for each instance of a process. With future builds (v3.86+), when multiple instances of a process exist, they will share the same icon. This means tracking the icon reference count and other internal changes, but its well worth the savings. Those little high resolution icons eat up so much RAM. For applications that tend to have lots of running instances (i.e. Google Chrome), it will really help. It will also substantially benefit applications without icons, as the 'standard' app icon will be shared amongst them.
I just wanted to mention this as one of MANY examples where I take some extra time to save system resources. I spend much more time saving CPU resources, turning everything 'off' when its not visible. It would be easier to just not care about such small amounts of resources, but that's not what I'm aiming for. Now, sometimes my efforts do result in bugs that wouldn't have otherwise existed, and that is frustrating -- but I am going to keep striving for optimality. I think users really appreciate it.
Now, you might say: Well, you should have done that to start with! I guarantee you nobody does. Why? In the grand scheme of things nobody considers it THAT much memory.. Plus, the extra complexity is never a good thing, and so the rational decision is to independently allocate process icons. Well, rational, maybe.. but rational is boring sometimes.
Not only will this save memory, but it could potentially save disk I/O (in the cases where it isn't cached). After all, the icon is actually retrieved from the physical image of the process executable.
If I wanted to take it a step further.. Being a PE guru (the Windows executable file format), I could easily extract the icons directly from the virtual image of the process executable, and may do that as well. Choosing the same icon as the Shell APIs would gets a bit confusing, as it has specific rules regarding which icon to pick at different color depths, and which to fall back to if unavailable. But, it can be done.
These little things aren't aspects that the big guys are ever going to care about. There's a compelling argument that I shouldn't either, but... I want to offer something better than the rest.
New core feature coming - second only to ProBalance
On other news - Depending on if I finish tonight or not, I'll introduce a new feature that really rocks. I have hesitated saying anything specific about it until I was completely done. You will love it. It is the more important functional addition since ProBalance.This next evolution of Process Lasso is going to the best ever. I have really got great plans for it. It will take me a while to finish everything and get it polished, but it is coming fast. I am also going to have an official beta test program, as the minor GUI annoyances that slipped through QA in the first build of v3.80 haunt me to this day.
0 comments:
Post a Comment