faster splitter
qznc via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 31 11:56:14 PDT 2016
On Tuesday, 31 May 2016 at 18:31:47 UTC, Andrei Alexandrescu
wrote:
> On 5/31/16 1:54 PM, qznc wrote:
>> Using a one-letter needle string is more like a user mistake
>> than
>> something to optimize for.
>
> How is splitting on ',' a user mistake? -- Andrei
The mistake is to split on "," instead of ','. The slow splitter
at the start of this thread searches for "\r\n".
Your lazy-skip algorithm looks great!
./benchmark.ldc
Search in Alice in Wonderland
std: 168 ±6 +29 ( 107) -3 ( 893)
manual: 112 ±3 +28 ( 81) -1 ( 856)
qznc: 149 ±4 +30 ( 79) -1 ( 898)
Chris: 142 ±5 +28 ( 102) -2 ( 898)
Andrei: 153 ±3 +28 ( 79) -1 ( 919)
Andrei2: 101 ±2 +34 ( 31) -1 ( 969)
Search random haystack with random needle
std: 172 ±19 +61 ( 161) -11 ( 825)
manual: 161 ±47 +73 ( 333) -35 ( 666)
qznc: 163 ±21 +33 ( 314) -15 ( 661)
Chris: 190 ±47 +80 ( 302) -33 ( 693)
Andrei: 140 ±37 +60 ( 315) -27 ( 676)
Andrei2: 103 ±6 +57 ( 64) -2 ( 935)
(avg slowdown vs fastest; absolute deviation)
CPU ID: GenuineIntel Intel(R) Core(TM) i7 CPU M 620 @
2.67GHz
The Alice benchmark searches Alice in Wonderland for "find a
pleasure in all their simple joys" and
finds it in the last sentence.
More information about the Digitalmars-d
mailing list