3 ms·
There's a pretty good discussion and benchmarks here: http://0x80.pl/articles/simd-strfind.html http://0x80.pl/articles/simd-strfind.html and here: http://0x8
by kwillets 9y ago
There's a pretty good discussion and benchmarks here: http://0x80.pl/articles/simd-strfind.html http://0x80.pl/articles/simd-strfind.html
and here: http://0x80.pl/articles/simd-friendly-karp-rabin.html http://0x80.pl/articles/simd-friendly-karp-rabin.html
- twotwotwo 9y agoWhoa, that's by Wojciech Muła, and I've used his pydvi2svg project. Neat coincidence. Only sort of related to these links, but one thing I know very little about is whether you can use tricks like these to speed up related search-y ops that aren't exactly strstr or strchr. For example, finding an occurrence of any of a set of strings, or chars needing escaping for JSON or HTML/XML output. Of course, makes sense that most of the work goes to the most used fundamental functions; I'm just wondering out loud.
- kwillets 9y agoHis work on Base64 decoding might be a start. In many cases it's a matter of how small an FSM or transducer is. For multiple string match I was looking at doing Aho-Corasick for long strings in a SIMD-friendly way, but it's more a matter of an FSM with relatively few branch points, so that SIMD can digest long label matches quickly just as it does with long strcmp's.