linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #06181
[Bug 1069493] Re: Better resource optimization
i believe burek's idea makes a lot of sense and is possibly the only way
we could get over regular resource / GUI handle limitations on Windows
when there are hundreds of tabs. the choice of words may not be the best
(we indeed don't use MDI) but the idea remains correct as there is one
new window created for each tab.
note however that certain features like taskbar thumbnails & Aero Peek
won't work if we use these "placeholder window intentions". so if they
are implemented, they should only activate when the amount of tabs is
too high (eg > 100).
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/1069493
Title:
Better resource optimization
Status in DC++:
Confirmed
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/dcplusplus/+bug/1069493/+subscriptions
References