Re: gobject optimization



Matthias Clasen <maclas gmx de> writes:

> I recently looked at some profiles, showing g_type_check_instance_cast
> in a prominent position. Instrumenting it showed that on testgtk --bench
> ALL, 1031830 of 3661172 calls or 28.18% are checking an object against
> its own type. Consequently, doing the same optimization that was done on
> g_type_check_instance_is_a() and g_type_check_class_is_a() back in July
> 2001 should have some effect. 

What debug level was this done at? Stable builds of GLib/GTK+
are supposed to have -DG_DISABLE_CAST_CHECKS, so cast-check
time should drop out. 

To simulate this for unstable series build (like 2.1.x), you should be
compiling with an explicit --enable-debug=minimum.

[ Pango/ATK don't have --enable-debug logic in place, so probably
  could use a bit of fixage here ]

That being said, of course, optimizing the case where we do
have cast-checks on won't hurt. It would be interesting to measure
with --enable-debug:

 - How much adding the optimization helps
 - How much it increases generated code size

There are even more cast checks in a typical GTK+ program than
GTK_IS_FOO() calls, so code size increase might be significant.

Regards,
                                        Owen

(Thinking about optimizations, I think we should go ahead and
make the __builtin_expect additions to g_return_if_fail()
in #69022.)




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