Andy Piper <andy(a)xemacs.org> writes:
>In real life this code is not reached unless glyphs changed, see
>redisplay-output.c:(compare_runes)
>
> else if (crb->type == RUNE_DGLYPH &&
> XFRAME (w->frame)->glyphs_changed)
>
>Note that this code is called on every redisplay, much much
>more often than glyphs really change, and the glyph cache is
>reset every so often.
Yes, Jan has already pointed out that this code needs optimising.
The big question is.. how?
In December I tried doing the memcmp-ing thing.. I was so convinced
it was the right idea that I even did it the clean way (i.e. make
substructures that identify the part that can be memcmp'ed like Ben proposed)
and spend a whole night doing the grepping and the replacing.
Then the final compile. Indeed compare_runes was now (almost) a simple
inlined memcmp... the result.. 15% SLOWER redisplay :-(. I still
haven't figured out what went wrong.
Jan
P.S. If anybody want I can try and dig up the patch.