CFP uses too many GDI objects

If you open your Windows Task Manager, you will find that CFP.exe uses a horrendous amount of GDI and USER objects, more than even Firefox and Adobe Photoshop put together.

In the Windows Task Manager for XP (and probably Vista), goto the Processes tab and select the menu View > Select Columns. Check off both GDI Objects and USER Objects, or just check mark all the boxes to see every column of data.

If you click on the GDI Objects or USER Objects column header, it will sort your processes by these columns. You will find that CFP uses more resources than any other application installed on your computer. I have tried launching some of the largest applications I have, including Firefox, Photoshop and Autocad to name a few, and none of them come close.

Comodo Firewall Pro is a Resource Hog.


Wait till you see their AV.Gulp! :wink:

I’ve just checked it on my system and CFP isn’t the most GDI resource hungry application (see the screenshot). ;D
I assume you mean that CFP devs should use some container for all this bitmaps and icons. Would it significantly reduce resource usage or increase performance ?

[attachment deleted by admin]

I guess devs already use containers. That’s why It is possible to change CFP GUI resouces using CFP skinning tool.

I think they don’t use any containers yet. Just look into this directory:

%appdata%\Comodo\Firewall Pro\Data\ResFiles

I guess this is a misunderstanding caused by our different definition of container.

I kept my post short but I would have referenced resfiles folder as well.

CFP GUI resources are stored in CFPres.dll and decompressed on cfp startup.
%appdata%\Comodo\Firewall Pro\Data\ResFiles stores those resources.

The containers I mentioned are likely programmig picture containers that reference those files in the resfiles folder.
I guess that each one of these continer load one graphic resource and counts as one GDI object.
Loading these resources at startup is what makes possible to edit CFP GUI using CFP skinning tool.

I don’t credit myself as an expert in efficient code, but I believe the normal procedure is to destroy GDI objects when they are not being displayed – such as 99% of the time that CFP is running (quietly in the background).

Perhaps it would be best if CFP existed as a Windows Service detached from the GUI front end, allowing the user to close the GUI when it is not in use. This would also be consistent with other administration tools of its kind. But if nothing else, the GDI objects should be destroyed when minimized or sent to the tray.

I guess Devs had some reason to do that. Besides CFP memory usage is quite low.

Even if CFP was coded to behave like few alertless administration tools of different kind I guess someone would complain about the time to load the GUI.

+1 lol