faster splitter
qznc via Digitalmars-d
digitalmars-d at puremagic.com
Sun May 29 05:22:23 PDT 2016
I played around with the benchmark. Some more numbers:
$ make ldc
ldmd2 -O -release -inline -noboundscheck *.d -ofbenchmark.ldc
./benchmark.ldc
E: wrong result with Chris find
E: wrong result with Chris find
E: wrong result with Chris find
std find: 153 ±25 +66 (1934) -15 (7860)
manual find: 122 ±28 +80 (1812) -17 (8134)
qznc find: 125 ±16 +18 (4644) -15 (5126)
Chris find: 148 ±29 +75 (1976) -18 (7915)
Andrei find: 114 ±23 +100 (1191) -13 (8770)
(avg slowdown vs fastest; absolute deviation)
$ make dmd
dmd -O -release -inline -noboundscheck *.d -ofbenchmark.dmd
./benchmark.dmd
E: wrong result with Chris find
E: wrong result with Chris find
E: wrong result with Chris find
std find: 160 ±27 +44 (3162) -20 (6709)
manual find: 148 ±28 +54 (2701) -19 (7178)
qznc find: 102 ±3 +27 ( 766) -1 (9136)
Chris find: 175 ±30 +55 (2796) -21 (7106)
Andrei find: 122 ±22 +46 (2554) -14 (7351)
(avg slowdown vs fastest; absolute deviation)
The additional numbers on the right are the ±MAD separated by
above or below the mean. For example Andrei find with ldc:
Andrei find: 114 ±23 +100 (1191) -13 (8770)
The mean slowdown is 114, which means 14% slower than the fastest
one. The mean absolute deviation (MAD) is 23. More precisely, the
mean deviation above the mean slowdown of 103 is 100 and -13
below the mean slowdown. 1191 of the 10000 runs were above the
mean slowdown and 8770 below. The 39 missing runs are equal to
the mean slowdown.
What bothers me is that changing the alphabet changes the numbers
so much. Currently, if you restrict the alphabets for haystack
and needle, the numbers change. The benchmark already does a
random subset on each run, but there is definitely a bias.
More information about the Digitalmars-d
mailing list