[cairo] Re: 1.1.6 to 1.2.0 performance
Jason Lynch
jason at aexoden.com
Fri Jul 14 22:03:36 PDT 2006
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
More information about the cairo
mailing list