gtkperf regression and gtknotebook



Our QA team has reported roughly a 10% degradation in gtkperf performance when comparing GNOME 2.6 and GNOME 2.14.

GNOME 2.6 is using gtk 2.4.9 and GNOME 2.14 is using gtk 2.8.17.

gtkperf is CPU bound and most of the CPU is used by the X server.I used a special version of Xorg with dtrace probes, see http://people/freedesktop.org/~alanc/dtrace, to identify that most of the CPU is being used by the RENDER extension and within that by RenderComposite
requests.

The worst degradation is being seen in the first three tests in gtkperf, i.e. GtkEntry, GtkComboBox and GtkComboBoxEntry.

Most of the RenderComposite requests are inexpensive but there are a handful of expensive ones. In one example I am looking at 18 calls out of 444 each take about the same amount of time and account for roughly 2/3 of the total cost.

All the expensive XRenderComposite calls seem to be associated with calls to gtk_paint_box_gap which is called from gtk_notebook_paint which is called from gtk_notebook_expose.

I have looked at all the calls to gtk_paint_box_gap during one iteration of GtkEntry, GtkComboBox and GtkComboBoxEntry tests in gtkperf using gtk 2.4 and gtk 2.8 to see if there is any correlation between the arguments passed to gtk_paint_box_gap and the expensive calls. It looks like the expensive calls are the ones with the largest area. See data below.

I am looking for help at this stage.

Should we expect the calls to gtk_paint_box_gap to be so expensive?

Are there any ideas on what may have happended between gtk 2.4 and gtk 2.8 to increase the number of expensive calls to gtk_paint_box_gap?

Padraig

gtk 2.4
=======
area:   0   0 532 281  x:   4 y:  34: width: 524: height: 243 (6)
area:   0   4 532  32  x:   4 y:  34: width: 524: height: 243 (0)
area:   0   4 532  57  x:   4 y:  34: width: 524: height: 243 (0)
area:   0   4 532  57  x:   4 y:  34: width: 524: height: 243 (0)
area:   0   4 532 123  x:   4 y:  34: width: 524: height: 243 (2)
area:   0   4 532 123  x:   4 y:  34: width: 524: height: 243 (2)
area: 128 127 276 154  x:   4 y:  34: width: 524: height: 243 (0)
area:   0   4 532 148  x:   4 y:  34: width: 524: height: 243 (2)

The figure in brackets on the right hand side is the number of expensive
calls to XRenderComposite.


gtk 2.8
=======
area:   0   0 536 280  x:   4 y:  34: width: 528: height: 242 (6)
area:   4   4 536  32  x:   4 y:  34: width: 528: height: 242 (0)
area:   4   4 536  32  x:   4 y:  34: width: 528: height: 242 (0)
area:   0   0 536 280  x:   4 y:  34: width: 528: height: 242 (0)
area:   4   4 528 280  x:   4 y:  34: width: 528: height: 242 (6)
area:   4   4 528  58  x:   4 y:  34: width: 528: height: 242 (0)
area:   4   4 528 124  x:   4 y:  34: width: 528: height: 242 (2)
area:   4   4 528 124  x:   4 y:  34: width: 528: height: 242 (2)
area: 129 128 278 152  x:   4 y:  34: width: 528: height: 242 (0)
area:   4   4 528 149  x:   4 y:  34: width: 528: height: 242 (2)




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