← Back to team overview

linuxdcpp-team team mailing list archive

[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