Le 31/05/2015 07:41, Lex Trotman a écrit :
> On 31 May 2015 at 11:46, Lex Trotman <elextr@gmail.com> wrote:
>> On 31 May 2015 at 08:05, Thomas Martitz <kugel@rockbox.org> wrote:
>>> Am 30.05.2015 um 03:19 schrieb Matthew Brush:
>>>>
>>>>
>>>> Just because it's such a trivial search algorithm, using strstr() is much
>>>> more simple and probably more efficient than using Scintilla's API to find
>>>> text, […]
>>
>> So its almost certainly slower than strstr().
>
> And on my system strstr() is a builtin that can use any hardware
> support available.
One thing that will make strstr() sound a lot less sexy is that you
probably actually want to find *words* rather than substrings. Meaning
that if the word under the cursor is "i", you probably don't want to
highlight all "i"s in e.g. an identifier "highlighting", but only whole
words. And while Scintilla search has the logic for this
(SCFIND_WHOLEWORD), it'd probably be annoying/redundant to re-do with
the same logic.
Apart that, yes, strstr() from an optimized libc like glibc will be hard
to beat without also using very smart optimization combined with use of
specialized CPU instruction sets.
Cheers,
Colomban