Listbox, slow problems in debug mode (no release)

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

hurricane
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Fri Nov 28, 2008 11:59

Listbox, slow problems in debug mode (no release)

Postby hurricane » Wed Jan 28, 2009 18:01

Hi all,

i have a performance issue with a Listbox and about 100 items into...

this is the code:

Code: Select all


   for(size_t i = 0; i < sounds.size(); i++){

      CEGUI::Listbox* list = static_cast<CEGUI::Listbox*>(wmgr.getWindow("Root/SoundSelector/FolderList"));
      CEGUI::ListboxTextItem* item = new CEGUI::ListboxTextItem(sounds.at(i));
      item->setSelectionBrushImage("Vanilla-Images", "GenericBrush");
      item->setID(i);
      list->addItem(item);

   }



This problem is only in debug mode...the window is too slow (also application loading).... in release mode is all ok.

cegui log?

only this "property" error:

28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguifontmanager.cpp(255) : FontManager::getFont - A Font object with the specified name 'DejaVuSans-10' does not exist within the system
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguifontmanager.cpp(255) : FontManager::getFont - A Font object with the specified name 'DejaVuSans-10' does not exist within the system
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Std) ---- Successfully completed loading of GUI layout from 'FileDialog.layout' ----
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguifontmanager.cpp(255) : FontManager::getFont - A Font object with the specified name 'DejaVuSans-10' does not exist within the system
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'UseStandardImagery' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'NormalImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'HoverImage' available in the set.
28/01/2009 18:55:08 (Error) CEGUI::UnknownObjectException in file d:\temp\cegui-0.6.2-vc9\src\ceguipropertyset.cpp(124) : There is no Property named 'PushedImage' available in the set.
28/01/2009 18:55:08 (Std) ---- Successfully completed loading of GUI layout from 'SoundSelector.layout' ----


ps ONLY the window with listbox is "in Matrix mode", others windows NO

thanks in advance, Martin

Pompei2
Home away from home
Home away from home
Posts: 489
Joined: Tue May 23, 2006 16:31

Postby Pompei2 » Wed Jan 28, 2009 22:54

If you complain about the speed, having a lot of text displayed is known to be slow in debug mode. I use a listbox for chat messages, when there are like 100 (short) messages, my FPS drop very hard.

This should change with the renderer rewrite CE does right now.

For the errors, maybe there is something wrong with the looknfeel you use.

hurricane
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Fri Nov 28, 2008 11:59

Postby hurricane » Thu Jan 29, 2009 08:51

Pompei2 wrote:If you complain about the speed, having a lot of text displayed is known to be slow in debug mode. I use a listbox for chat messages, when there are like 100 (short) messages, my FPS drop very hard.

This should change with the renderer rewrite CE does right now.

For the errors, maybe there is something wrong with the looknfeel you use.


are there any patch to fix this issue (at the moment)? thx

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Postby CrazyEddie » Thu Jan 29, 2009 09:46

Hi,

The thing about debug builds - especially for CEGUI, for some reason - is that they are inherently slower (this is due obviously to the fact the code is not optimised by the compiler, and also the fact that more runtime checks are performed). We have a very heavy use of STL containers, and I think in debug mode, this is what kills us the most - though it should be less pronounced from 0.7.0 onwards.

There is not, and can never be, a 'solution' whereby debug runs anywhere near the speed of an optimised build - otherwise there would be no need for optimised builds, right? What you can do is, depending upon your needs, customise the build options such that you get the level of debugging information you need, but without so much of the other baggage (so you might disable the runtime checks, as one simple example). And yes, I am fully aware that trying to debug something that runs like molasses is almost an impossible task, as is trying to debug optimised builds ;)

are there any patch to fix this issue (at the moment)? thx

As mentioned, there is no 'fix' per-se, but work is being done on CEGUI's performance and other areas, and so we should have mitigated these adverse affects, at least a little, with the new renderer model that's being developed at the moment. Currently there is only a 99% complete implementation for the OpenGL API, which I hope to finish this weekend, then start the other renderers - and even then this will require a fair amount of testing time before a release is made. There is no 'patch' for this, since it's a somewhat fundamental change to the way the underlying rendering is done by CEGUI (though if you do want to take a look, the code is in the renderer-rewrite-devel branch of subversion, and is being discussed starting at this post: http://www.cegui.org.uk/phpBB2/viewtopi ... 7414#17414).

CE

hurricane
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Fri Nov 28, 2008 11:59

Postby hurricane » Thu Jan 29, 2009 10:04

CrazyEddie wrote:Hi,

The thing about debug builds - especially for CEGUI, for some reason - is that they are inherently slower (this is due obviously to the fact the code is not optimised by the compiler, and also the fact that more runtime checks are performed). We have a very heavy use of STL containers, and I think in debug mode, this is what kills us the most - though it should be less pronounced from 0.7.0 onwards.

There is not, and can never be, a 'solution' whereby debug runs anywhere near the speed of an optimised build - otherwise there would be no need for optimised builds, right? What you can do is, depending upon your needs, customise the build options such that you get the level of debugging information you need, but without so much of the other baggage (so you might disable the runtime checks, as one simple example). And yes, I am fully aware that trying to debug something that runs like molasses is almost an impossible task, as is trying to debug optimised builds ;)

are there any patch to fix this issue (at the moment)? thx

As mentioned, there is no 'fix' per-se, but work is being done on CEGUI's performance and other areas, and so we should have mitigated these adverse affects, at least a little, with the new renderer model that's being developed at the moment. Currently there is only a 99% complete implementation for the OpenGL API, which I hope to finish this weekend, then start the other renderers - and even then this will require a fair amount of testing time before a release is made. There is no 'patch' for this, since it's a somewhat fundamental change to the way the underlying rendering is done by CEGUI (though if you do want to take a look, the code is in the renderer-rewrite-devel branch of subversion, and is being discussed starting at this post: http://www.cegui.org.uk/phpBB2/viewtopi ... 7414#17414).

CE


ok thanks CE for reply. now it's all more clear. Then i ll use some pre-compiler directives to limit "cegui's stress" in debug mode.

bye


Return to “Help”

Who is online

Users browsing this forum: Baidu [Spider] and 23 guests