[cairo] Text performance on windows?
Damian Frank
damian.frank at gmail.com
Wed Aug 27 11:16:51 PDT 2008
On Tue, Aug 26, 2008 at 2:28 PM, Owen Taylor <otaylor at redhat.com> wrote:
> > I find it quite interesting that dib is faster than ddb. In
> > particular, the ExtTextOutW call is tremendously slower, and yet the
> > DDB case seems to incur much more overhead in
> > cairo_gstate_show_text_glyps for the DDB case. Is this to be
> > expected?
>
> Check in a debugger that you have a direct code path:
>
> cairo_show_text() =>
> _cairo_gstate_show_text_glyphs() =>
> _cairo_win32_surface_show_glyphs() =>
> ExtTextOutW()
>
> If you hit a fallback path instead, why it's hitting the fallback path
> (whether
> it's a cairo bug or something you are doing) is why it is slow.
Unfortunately, I can't actually directly debug this (or at least I haven't
figured out how to convince a debugger to load the symbols) due to how we're
dynamically loading the DLL and calling into function pointers.
However, I am 100% sure that the call goes through the above chain,
culminating in ExtTextOutW. I can't promise there aren't other function
calls in between those callers, since I can't look at a stack, but I suspect
that's enough.
Anyway, I guess right now the big thing is, there's an awful lot of overhead
incurred on the way to ExtTextOutW; the actual ExtTextOutW call takes a
minority of the time, even in the DIB case. Is this surprising, or is this
seen as an inevitable result from having a rich API?
Thanks for your help,
Damian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cairographics.org/archives/cairo/attachments/20080827/ed38c229/attachment.html
More information about the cairo
mailing list