Better resource optimization
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DC++ |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
This is actually not a bug, but an improvement suggestion.
Anyway, so far, dc++ uses MDI interface to display multiple child windows (search, file lists, hubs, pms) inside one main window. This is all ok for a low number of child windows opened.
When you have any kind of administrative need to check a lot of user's file lists or to have a lot of hubs/pms opened or similar cases, when you have a need for a lot of multiple child windows, then you are often in a trouble of dc++ freezing, due to the resources (GDI objects mostly) starvation, which windows usually limits to some "reasonable" value. Not to mention that dc++ slows down a lot and working with it, when many child windows are opened, is very difficult and consumes a lot of memory.
There is a very simple improvement technique for this, which may improve dc++ to scale far better for hundreds or thousands of opened child windows. The idea is not to open a single MDI child window for each object (search, pm, mainchat/hub, file list) that we need. Instead, we can pre-created 4 default MDI child windows, one for each type of object and when a user switches to another object, we simply switch to one of 4 pre-created child windows, depending on the type of that object only. This means that all the search objects/windows could be displayed using only 1 physical MDI window, by simply refreshing the content of that window, depending on the content of the search object.
For more clarity, here is a screenshot to better describe all this.
Shortly, instead of creating a new MDI child window for each new object needed, we could just re-use a pre-created MDI child window for that type of object and repaint/refresh its content, based on the content of our object.
This way no more than 4 MDI child windows would be needed for 4 basic objects: search results, private chat, main chat and file list, so the consumption of system resources (GDI objects) would be the optimal.
Changed in dcplusplus: | |
importance: | Undecided → Wishlist |
tags: |
added: dwt win32-ui removed: child gdi mdi objects optimization resources windows |
Thank you for the suggestion but considering DC++ has been using this interface for ~5 years or so now I would have to say that the way the GUI is setup now is the way it's going to stay.