[cairo] Re: Re: Re: cairo c++ bindings
Murray Cumming
murrayc at murrayc.com
Mon Nov 28 01:33:02 PST 2005
On Fri, 2005-11-25 at 15:20 +0000, Mike Hearn wrote:
> On Fri, 25 Nov 2005 15:22:42 +0100, Murray Cumming wrote:
> > The function is probalby just returning an integer. And we would just if()
> > the result. Is that likely to be significant?
>
> I'm not sure. For an immediate mode API like Cairo I suspect it could be.
> OpenGL implementations usually optimize the function call overhead a lot:
> for instance with vertex arrays, with optimized TLS implementations and so
> on.
>
> When you're doing animation, and you want to throw a bazillion
> function calls per second through a library, cycle-level
> optimization becomes interesting.
>
> As to the result of a function call and an if statement: it might be
> significant. It means a pipeline-stalling comparison for every function
> call. Also, on some platforms like MacOS X cross-library calls are very
> slow.
So, this remains a highly theoretical performance issue, but one that
could easily be tested.
If it is a problem, then the proposed disabling of exceptions would
mostly eliminate it, by leaving us with just one extra
if(exceptions_enable) for each function call. I can't imagine what you'd
be drawing for which that would be a significant amount of work.
Murray
More information about the cairo
mailing list