Re: Profiling GTK within an application



Chris Rorvick schrieb:
I'm attempting to profile GTK in an application and I'm wondering what 
methodology others use to accomplish this.  Is there any documentation 
that addresses this topic that I should refer to?  Any caveats worth 
pointing out?  Here is where I'm at ...

I recently upgraded an application using GTK 2.6 to use GTK 2.10, 
quickly followed by an upgrade to 2.12.  In both cases, the upgraded 
version of the application consumed 3-5x the CPU as compared to the 
original version using 2.6.  This comparison was done anecdotally using 
top on a Solaris workstation.

This is most likely caused by cairo. You should also see a bit less CPU usage in
2.12 compared to 2.10 (or more precise newer cairo should perform a bit better).


My first step was to have profiled versions of these libraries built in 
the hope that I could use them to isolate where the additional cycles 
were being burned.  Several builds and profiled runs later, and after a 
fair amount of searching the Internet, I've concluded that I'll never 
get anything out of shared objects instrumented with GCC; all code to be 
profiled must be statically linked.  If you know this to be untrue, 
please let me know!  :)  My plan now is to build static versions of all 
GTK libraries instrumented for profiling and link against those.

I would suggest to use a sampling profiler, like oprofile, sysprof, but all
those are linux profilers (they need a kernel module). But I am sure there a
sampling profilers for solaris too. The advantage is that you don't need to
recompile your apps (given you have debug symbols alreday) and it works with
shared libs too.

Stefan


FYI, Our platform is Solaris 10 (x86) compiling with GCC 3.4.

Thanks in advance,

Chris Rorvick
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list




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