On Fri, 2006-07-14 at 11:04 -0500, Federico Mena Quintero wrote: > On Fri, 2006-07-14 at 10:57 +0300, Jorn Baayen wrote: > > > gtk_widget_get_draw_rectangle() > > > calls gtk_widget_style_get (widget, "draw-border", &draw_border, > > > NULL); > > > > > > And gtk_widget_get_draw_rectangle() gets called pretty often, pretty > > > much every time a widget gets painted. > > > > Ok, but why isn't this taking 7% using 2.6? > > Sorry, I should have explained a bit more. That thing got added between > GTK+ 2.6 and 2.8: > > 2005-04-28 Owen Taylor <[EMAIL PROTECTED]> > > * gtk/gtkwidget.c: Add a draw-border style property to allow > themes to draw outside the widget's allocation. > > I'm not completely sure where this is needed, but apparently some > specific themes need it. It may be the Win32 or the MacOS X theme. > > This obviously hurts quite a bit when repainting a single button many > times. I wonder if it even shows up in the profile when exposing a > "real" window with many different widgets. > > I'd be interested in knowing how much time the children of that call > take up in the profile. Is the problem finding out the correct style > structure? Or is it asking the style if it has that property? Etc.
Have uploaded the same profiles with callgraphs enabled to the same location. This shows: 11 4.1045 libgtk-x11-2.0.so.0.800.18 gtk_widget_style_get 257 95.8955 libgtk-x11-2.0.so.0.800.18 gtk_widget_style_get_valist 124 6.9312 libgtk-x11-2.0.so.0.800.18 _gtk_style_peek_property_value 124 46.2687 libgtk-x11-2.0.so.0.800.18 _gtk_style_peek_property_value [self] 35 13.0597 libc-2.3.90.so bsearch 34 12.6866 libgobject-2.0.so.0.1000.3 g_type_is_a 31 11.5672 libgobject-2.0.so.0.1000.3 g_type_check_instance_is_a 28 10.4478 libgtk-x11-2.0.so.0.800.18 gtk_style_get_type 15 5.5970 libgtk-x11-2.0.so.0.800.18 gtk_widget_get_type 1 0.3731 libgtk-x11-2.0.so.0.800.18 style_property_values_cmp Thanks, Jorn > > Federico > -- OpenedHand Ltd. http://o-hand.com/ _______________________________________________ Performance-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/performance-list
