[OLPC-devel] OLPC theme benchmarked

Manu Cornet Manu.Cornet at GMail.com
Wed Aug 2 09:21:15 EDT 2006

Hi !

I have been coding a small "torture" application for GTK themes [1],
which mainly does two things: 1) crash test the engine by calling all
the GTK paint functions with unsual parameters and 2) measure the time
the theme takes to create/map/expose/resize/destroy widgets (with help
from Federico's widget profiler's infrastructure).

While fixing the OLPC theme to pass my crash test [2], I noticed that it
was quite a bit slower than I expected, so I thought that precise time
measures would be interesting. I hope this is useful, it will definitely
help me in the next few days :)

The full report is available as a spreadsheet [3]. Before writing a
short analysis, a few disclaimers:

* The main point of this benchmarking is to have a record of the current
speed (so that we can see how it evolves when some more work has been
done). The theme is a work in progress, and therefore understandably
still very slow compared to more polished ones.

* I tried my best to make the testing conditions as stable as possible:
same computer (of course), same programs running in the background,
tests performed within a small time window, etc.

* The different time measures correspond to the few important events in
a widget's life: create, map, expose, destroy. The "expose with resize"
corresponds to resizing the widget a lot of times (from a very small
size to a very big size) and measuring the expose time for each size.

* Each cell of the document is an amount of time (in seconds) averaged
from about 80 iterations of the same event, on the same type of widget.

* These are only observations, not explanations. Make the slow parts
faster will be the next job!

* Absolute time values aren't that useful, but ratios are more

Okay, so a few observations:

* Create : ratios vary from 0.92 to 1.07, showing that create time is
pretty much the same for all themes, for each type of widget.

* Mapping a widget takes the OLPC theme about twice as much time as
Clearlooks (or HighContrast).

* Destroy is always slightly (30 %) faster on OLPC than on Clearlooks,
but slower than HighContrast (about 1.4 ratio). Destroy time are pretty
much the same between OLPC and Human (Ubuntu's theme) -- ratio ~ 1.

* Expose is a bit slower (1.9 ratio, and sometimes a little faster) with
OLPC than with Clearlooks or HighContrast, but faster than Human.

* Expose with resize is the most CPU-consuming task, and therefore
probably yields the most significant results. And the OLPC theme doesn't
do well with this one: it is from 30 to 130 times slower than Clearlooks
(50 times on average), and 35 times slower than Human.

I'll spend the next few weeks (along with the other developers of the
theme) trying to bring those numbers down while still aiming towards
Diana's great mockups :o)



[2]  See the report at

[3] http://www.manucornet.net/pub/Themes_performance.ods

More information about the Devel mailing list