[cairo] Re: 1.1.6 to 1.2.0 performance

Vladimir Vukicevic vladimirv at gmail.com
Fri Jul 14 23:30:27 PDT 2006


Hmm, so we just recently found that the flush was being hit often from
some font code -- try disabling the implementation of xlib_flush, or
just comment out the XSync, and see if that fixes things?

   - Vlad

On 7/14/06, Jason Lynch <jason at aexoden.com> wrote:
> On Wed, 12 Jul 2006 07:45:43 -0700, Carl Worth wrote:
>
> > On Tue, 11 Jul 2006 16:21:57 +0530, "Ujjwal Dasgupta" wrote:
> >> I use Cairo/GTK+ on an old linux box. I was using the development
> >> (1.1.6) version of cairo for a while, till I switched to 1.2.0 stable. I
> >> found the new version was noticable slower than the development version
> >> (and to a lesser extent, version 1.0.4).
> >
> > Thanks for the report.
> >
>
> I had also noticed some performance regressions when upgrading to 1.0.4 to
> 1.2.0. The problem was most apparent in x-chat, where scrolling the main
> text window became very sluggish.
>
> Having noticed Ujjwal's post (and learning about gtkperf), I went ahead
> and ran gtkperf constantly using git bisect. There were two distinct
> classes of results:
>
> For 1.0.4, the entire test suite would complete (500 test rounds) in about
> 127 seconds. This varied by up to perhaps 2 or 3 seconds in either
> direction on repeated tests. For 1.2.0, the entire test suite (again with
> 500 test rounds) took instead approximately 156 seconds. A very clear
> difference.
>
> After a bit of time with git bisect, I traced the regression to the
> following commit:
>
> 92a015ff8ec5c11aac6d9c0c6702fa4873c04381 is first bad commit
> commit 92a015ff8ec5c11aac6d9c0c6702fa4873c04381
> Author: Vladimir Vukicevic <vladimir at cyclone.vlad1.com>
> Date:   Mon Mar 27 13:49:58 2006 -0800
>
>     [xlib] only do glyph extents computation if non-solid source.
>
>     xlib_show_glyphs was always calculating the glyph extents, even when it
>     didn't need to; this only does it when necessary.
>
>     Also adds an implementation of surface_flush() for xlib that just calls
>     XSync.
>     (cherry picked from 8770ac5b5cdba8007c4c6a6a980e6e06acf6aeb6 commit)
>
> I haven't yet had the opportunity to see if this helps with x-chat, but
> it's the dividing line with gtkperf, at least.
>
> Jason
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo
>


More information about the cairo mailing list