Thank you. You've given us a great pointer to what might be a problem area. We are using the PXA270 processor and according to our kernel guy it appears we do in fact have the kernel emulation of hard floating point instructions turned on. We had never looked into the different solutions for floating point in any great detail.
-----Original Message----- From: John K. Luebs [mailto:jklu...@roctown.com] Sent: Monday, February 23, 2009 4:01 AM To: Boncek, John Cc: gtk-app-devel-list@gnome.org Subject: 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 _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list