Re: GNOME 2.11/2.12 targeting GTK+ 2.8 (ie cairo based)



On Sun, 2005-06-12 at 22:53 -0400, Morten Welinder wrote:
> 
> > For non-local servers without Render, Cairo will allow us to eliminate
> > the round-trips... a huge win.
> 
> "Show me the money!"
> 
> Back in the real world, new code goes in and someone files a performance
> bug.  Then you, Owen, seem to take that as a personal insult and close
> it as NOTABUG or WONTFIX.
> 
> Exhibit 1: bug 94718.  A clear, to-the-point bug report that something
> (namely greying of toolbars) had gotten so much slower that it was a
> problem.  It still is.

The bug was originally filed in useless form, I indicated as much.
when it was reopened with more useful data, it was left open. 
The data in the bug report is still really not very good ... all
the profiling data was done in the remote case, and may well be
completely irrelevant if the actual time is spent in roundtrips
to the server (I think it is). 

But with the test case, there's the possibility that someone could
pick up the bug, get some better data and come up with a patch.

> Exhibit 2: bug 123538.  Pango/GtkTreeview gets very slow with lots of
> data, a situation that "less" handled well a decade or two ago.  I
> routinely use "less" on files larger than 1GB or with lines that are
> thousands of characters wide.  While you didn't actually close this bug
> (we kept it under "Gnumeric") you seem to think I am outside what you
> designed for, hence my "Hello World" poke.

You clear have *no* idea what I'm saying in comment #7. Or you'd
realize that looking at the performance of 'less' is completely
irrelevant here. Fixed with character grids without complex text
handling are inherently fast. That doesn't mean that it's easy to
make GtkTextView just as fast on the same font and data.

> Exhibit 3: bug 104683.  General Pango performance with a patch that
> at the time cut 70% of cpu usage for the all-ASCII case (such as
> numbers) that Gnumeric uses heavily.  You NOTABUG'd it *twice* (and
> "futured" it once) as evidently Pango's performance cannot possibly
> be problematic.

Problems with this "patch":

 - The 70% timing was done with code paths that weren't used by
   almost anybody when you filed the bug report, and aren't even
   minimally supported today

 - The patch made assumptions [width(AB) = width(A) + width(B)]
   that were planned to be broken at the point you filed the 
   bug report and have since been broken.

 - The patch was lots of completely unrelated things shuffled
   together, many without any real justification

In terms of NOTABUG, that's clearly explained in the comments
in bug report. When you analyze the bug report, it comes down
"Pango is slower than Morten likes". It's slower than Owen likes as
well. Having a bug open like that does nothing to make Pango better.
I want bug reports to be specific to particular issues.

I left it open eventually because I got tired of fighting the 
battle. 

> I am somehow reminded of the word "attitude" reading these old, but
> still-open, bug reports.

What I try to make very clear on performance bug reports is that:

 A) Reports of something being *slower* than some previous version
    of GTK+ is not, in itself an issue. Things get slower typically
    because we add interesting and important features.

    Something being slower is *only* a problem when it is a performance
    bottleneck.

 B) Bug reports should be about specific fixable items. A bug report
    complaining that Pango is slow is not specific enough to  be
    useful.

 C) Random patches that "optimize" some function that doesn't show
    up on profiles and without any benchmark to show that that patch
    makes a difference will not be accepted.

It is in fact pretty hard to get me to take a performance patch for
Pango. This is not because I don't want to improve Pango performance,
it's because I've spent weeks and months working on Pango performance,
so if a patch was easy to come up with, it's most likely either 
close to irrelevant or incorrect. 

There certainly are some areas where things could be improved (and
some patches in Bugzilla to do so, especially for Arabic/Indic shaping),
but we're talking mostly a few percent speedups.

With a well-written ASCII-only codepath and programmatic options to
degrade layout quality for speed, you might manage to get a 50% speedup
for text *layout*. But Gnumeric cares most about text
*rendering* speed, and with the X servers most people are running
currently, speeding up text *layout* 50% will speed up rendering
maybe 10%. 

> > Rendering speed is 90% an X server issue.
> 
> I would normally define rendering speed as a measure of how fast you get
> your pixels on the screen.  With that definition in mind, look at bugs
> 94718 and 104683 above and see that getting pixels on the screen got
> much slower with constant X server.  The toolkit is much, much more
> than 10%.

Rendering *DIFFERENT THINGS*. Yes, rendering alpha-composited images
on a remote sever without the RENDER extension is slow. Duh. Cairo,
as I noted above, would allow someone with a real interest in *fixing*
this issue rather than just complaining to make progress.

Regards,
						Owen

Attachment: signature.asc
Description: This is a digitally signed message part



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