Re: Embedded Gtk+ system moving to 2.14



John Boncek wrote:
 Attempting to move several large (multi-hundred compile units) C++
 application programs of an embedded ARM / Linux 2.4 system from Gtk+
 2.2.4 to Gtk+ 2.14.  We are noting severe performance degradation
 (2-3 times) in screen transitions and a definite overall sluggishness
 to the systems. There are no profiling tools available on ARM / Linux
 2.4 that we have been able to find despite a lot of online
 investigation.

 Does anyone know of particular parts of Gtk+ that have become
 significantly slower across this rather large jump in versions?  Any
 pointers on where to look in our systems would be appreciated.

 Sincerely, John Boncek
As others have mentioned, the use of cairo is one of the major differences between the two versions of GTK+ you mention. cairo is quite floating point intensive, which could be a big problem for the ARM. Previous to use of cairo, GTK+ and the rest of the GUI stack was relatively free of floating point in the core drawing paths. Also, libpixman has improved over the years but unfortunately, unless you are using a modern ARMv6 or greater architecture with SIMD support, the ARM specific optimizations in pixman
are not usable.

Since you mention linux 2.4, it sounds like you are working with an older system. Are you using software floating point? Kernel emulation of hard floating point instructions is very likely to give awful performance. It is also preferable, if using gcc, to use the handwritten assembly floating point functions (defined in gcc/config/arm/ieee754-{d,f}.S) that are built into libgcc rather than linking with a libfloat
library built from C code, as has been done in the past.

 -jkl




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