Re: Make'em suffer!



Hi,

ext Federico Mena Quintero wrote:
Note: Deep widget hierarchies add noticable overhead because of size request / allocate propagation.

Yeah, and that's going to be rather tricky to test...  Some widgets do
take a good amount of time in finding out their requisition
(GtkTextView); some others should be trivial (GtkImage).  Then you have
the overhead from the generic sizing mechanism.

Do you have profiles where the generic sizing code shows up as a
culprit?  I'd expect the problems to be in fat widgets like GtkTextView
and GtkTreeView...

This is very old information (2-3 years), for Gtk 2.4 (I think)
and I don't have the profiles for this.  Nowadays we avoid deep
widget hierarchies, so we don't see this. :-)

However, I think the problem was in an application that used a lot of
containers to position things correctly. I think it was "fixed" back then by using just GtkFixed instead...

So, I would suggest having in the torturer one test with just a lot
of different containers inside each other.


Btw. With large themes (hundreds of styles like in Maemo), binding the
styles to a widget shows up clearly in profiler if you create for
example a treeview with hundreds of items.

Oooh, interesting.  Do you have a profile?

This is also quite old information (1 year) and I don't have the
profiles, but the bottleneck was in finding (matching) the correct
style for the corresponding object. The Maemo theme files were optimized
a bit after that (there were some styles that used more than one * for
matching) and split to separate files, so it might be quite a bit less problematic nowadays. I could cachegrind this a bit in few weeks.

I think only Maemo has such a large number of styles in the themes that
this is a problem.  Or are there other themes with hundreds of styles? :-)


[GtkCellRendererText does some stupid things like causing text to be
measured two or three times; see my old profiles for the file chooser
for the details.]

I would suggest also a torture test for each CellRenderer type
in which hundreds of them would be put into a list.


	- Eero



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]