linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #06174
[Bug 1069493] [NEW] Better resource optimization
Public bug reported:
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.
** Affects: dcplusplus
Importance: Undecided
Status: New
** Tags: child gdi mdi objects optimization resources windows
** Attachment added: "screenshot of 4 basic types of needed child MDI windows"
https://bugs.launchpad.net/bugs/1069493/+attachment/3407814/+files/dc_screen1.jpg
--
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++:
New
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
Follow ups
-
[Bug 1069493] Re: Better resource optimization
From: Fredrik Ullner, 2013-11-30
-
[Bug 1069493] Re: Better resource optimization
From: Fredrik Ullner, 2013-08-11
-
[Bug 1069493] Re: Better resource optimization
From: MikeJJ, 2012-10-23
-
[Bug 1069493] Re: Better resource optimization
From: Bostyan87, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: poy, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: poy, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: eMTee, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: burek, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: Bostyan87, 2012-10-22
-
[Bug 1069493] Re: Better resource optimization
From: iceman50, 2012-10-21
-
[Bug 1069493] [NEW] Better resource optimization
From: burek, 2012-10-21
References