[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Case mapping of sharp s
From: |
Eli Zaretskii |
Subject: |
Re: Case mapping of sharp s |
Date: |
Sat, 21 Nov 2009 10:58:04 +0200 |
> Date: Sat, 21 Nov 2009 04:08:42 +0100
> From: grischka <address@hidden>
> Cc: address@hidden, address@hidden
>
> Stefan Monnier wrote:
> >> Also how can it happen that a C function varies between 4 and 90
> >> seconds for the same action.
> >
> > I have no explanation for that.
>
> Turned out that the time of backwards simple_search depends mostly
> on the number of buffer markers in the buffer.
>
> That's because of CHAR_TO_BYTE in the inner loop and then because
> that one doesn't mind checking hundreds of markers for each single
> char in the file.
CHAR_TO_BYTE could be expensive, yes. But how else can you convert an
arbitrary character position to the corresponding byte position? When
you scan forward, you know the byte length of a multi-byte UTF-8
sequence by the first byte, but what do you do when you scan backwards?
The markers CHAR_TO_BYTE considers are a kind of cache, and are
supposed to speed things up. I don't know what measurements were done
at the time this caching was introduced, nor whether those
measurements were repeated when Emacs switched from Mule encoding to
the current extended UTF-8 encoding of characters. Maybe nowadays
this caching no longer helps. Maybe UTF-8 allows a simpler conversion
than just counting bytes since the beginning of the buffer. Or maybe
this particular use-case does not benefit from the cache, and we
should have a no-cache method for doing the same.
IOW, more research is needed.
- Re: Case mapping of sharp s, (continued)
- Re: Case mapping of sharp s, Stephen J. Turnbull, 2009/11/22
- Re: Case mapping of sharp s, Kenichi Handa, 2009/11/22
- Re: Case mapping of sharp s, Richard Stallman, 2009/11/21
- Re: Case mapping of sharp s, Ulrich Mueller, 2009/11/20
- Re: Case mapping of sharp s, Stephen J. Turnbull, 2009/11/20
- Re: Case mapping of sharp s, Ulrich Mueller, 2009/11/20
- Re: Case mapping of sharp s, Stephen J. Turnbull, 2009/11/20
- Re: Case mapping of sharp s, grischka, 2009/11/19
- Re: Case mapping of sharp s, Stefan Monnier, 2009/11/19
- Re: Case mapping of sharp s, grischka, 2009/11/20
- Re: Case mapping of sharp s,
Eli Zaretskii <=
- Re: Case mapping of sharp s, Andreas Schwab, 2009/11/21
- Re: Case mapping of sharp s, Eli Zaretskii, 2009/11/21
- Re: Case mapping of sharp s, grischka, 2009/11/21
- Re: Case mapping of sharp s, Ulrich Mueller, 2009/11/21
- Re: Case mapping of sharp s, Andreas Schwab, 2009/11/21
- Re: Case mapping of sharp s, Ulrich Mueller, 2009/11/21
- Re: Case mapping of sharp s, Andreas Schwab, 2009/11/22
- Re: Case mapping of sharp s, Stefan Monnier, 2009/11/22
- Re: Case mapping of sharp s, Kenichi Handa, 2009/11/24
- Re: Case mapping of sharp s, grischka, 2009/11/24