Dear Rooters,
I have written a simple GUI application to log error messages based
on the TGListBox class. I allow for upto 1000 entries. After 1000 entries,
all new entries result in the first entry being deleted
TGListBox->RemoveEntry(id);
and the new entry being added to the end of the list
TGListBox->AddEntry(pListBoxTextEntry,pLayout);
This works well and can cope with high message rates ( ~100 Hz ) until
1000 entries have been filled. After this messages can only be logged
at ~4 Hz. The bottleneck occurs in TGListBox::MapSubwindows()
It is somehow connected to removing objects from the TList in the
listbox container.
I've tried to investigate the causes and find that if I remove the
last entry rather than the first entry of the list then rate problems
go away. It seems that calling fListBox->MapSubwindows() after removing
the first entry in the list burns CPU.
One final piece of information, if the screen is iconized the rate
problems also go away.
I'm using Root V03_01_06 on a 750 MHz pc running Linux.
Any suggestions ?
cheers,
Mark Thomson
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:57 MET