[MLton-devel] basis library benchmarks

Matthew Fluet fluet@CS.Cornell.EDU
Tue, 30 Jul 2002 19:48:36 -0400 (EDT)


Here are benchmark results for the new basis.  It's relative to the
basis-1997 tag point, which is were I branched basis-2002.  It didn't seem
fair to compare with the HEAD branch, since all the generational changes
are already started there.

Anyways, nothing looks too bad, although there is probably room for
improvement.  Compile times seem to be up a bit, although that may be due 
to the fact that each compiler is built on it's own basis implementation,
so mlton.cvs.basis-2002 will suffer from problems in the basis library.
IN particular, because vector-concat is slow, and strings are now
completely char vectors, then String.concat and String.^ will be a little
slow in the basis-2002 compiler.

I suspect that the reason Vector.concat is slow is because it's completely
bootstrapped from the VectorSlice.concat:
	fun concat seqs = Slice.concat (List.map Slice.full seqs)
So, that's an extra list traversal that we don't really need if we
implement concat "natively" for full sequences.

Sizes seem a little high in places, but I haven't looked into them.

MLton0 -- mlton.cvs.basis-1997 
MLton1 -- mlton.cvs.basis-2002 
compile time
benchmark         MLton0 MLton1
barnes-hut           1.8    1.8
boyer                3.9    3.5
checksum             0.4    0.6
count-graphs         1.2    1.4
DLXSimulator         3.3    3.5
fft                  0.9    0.9
fib                  0.4    0.5
hamlet              38.8   40.6
imp-for              0.4    0.5
knuth-bendix         1.6    1.7
lexgen               4.0    4.4
life                 0.9    0.9
logic                2.0    2.1
mandelbrot           0.5    0.6
matrix-multiply      0.5    0.6
merge                0.5    0.5
mlyacc              15.9   16.4
mpuz                 0.6    0.7
nucleic              5.1    5.1
peek                 0.7    0.8
psdes-random         0.5    0.5
ratio-regions        1.7    1.8
ray                  2.6    2.7
raytrace             7.8    7.8
simple               5.1    5.3
smith-normal-form    5.7    6.7
tailfib              0.4    0.5
tak                  0.4    0.5
tsp                  1.0    1.1
tyan                 2.7    2.8
vector-concat        0.5    0.6
vector-rev           0.4    0.5
vliw                 8.9   10.2
wc-input1            1.2    1.1
wc-scanStream        1.2    1.2
zebra                4.3    4.4
zern                 0.8    0.8
run time
benchmark         MLton0 MLton1
barnes-hut           3.1    3.1
boyer                4.4    4.4
checksum             1.6    1.6
count-graphs         2.8    3.0
DLXSimulator        13.2   13.3
fft                  8.2    8.2
fib                  2.8    2.8
hamlet               7.0    6.5
imp-for              5.8    5.8
knuth-bendix         4.8    4.2
lexgen               8.9   10.6
life                 4.3    4.5
logic               16.0   16.1
mandelbrot           5.0    5.0
matrix-multiply      1.8    1.8
merge               45.9   43.0
mlyacc               8.0    8.0
mpuz                 3.7    3.8
nucleic              5.0    5.2
peek                 0.7    0.7
psdes-random         2.3    2.3
ratio-regions        6.0    6.0
ray                  3.0    2.9
raytrace             4.2    4.3
simple               5.1    5.1
smith-normal-form    0.6    0.6
tailfib              9.4    9.4
tak                  6.9    6.9
tsp                  6.7    6.7
tyan                14.4   13.9
vector-concat        2.1    2.5
vector-rev           3.7    3.7
vliw                 5.6    5.5
wc-input1            1.7    1.7
wc-scanStream        2.2    2.2
zebra                1.3    1.3
zern                22.1   22.2
run time ratio
benchmark         MLton1
barnes-hut           1.0
boyer                1.0
checksum             1.0
count-graphs         1.1
DLXSimulator         1.0
fft                  1.0
fib                  1.0
hamlet               0.9
imp-for              1.0
knuth-bendix         0.9
lexgen               1.2
life                 1.0
logic                1.0
mandelbrot           1.0
matrix-multiply      1.0
merge                0.9
mlyacc               1.0
mpuz                 1.0
nucleic              1.1
peek                 1.0
psdes-random         1.0
ratio-regions        1.0
ray                  1.0
raytrace             1.0
simple               1.0
smith-normal-form    1.0
tailfib              1.0
tak                  1.0
tsp                  1.0
tyan                 1.0
vector-concat        1.2
vector-rev           1.0
vliw                 1.0
wc-input1            1.0
wc-scanStream        1.0
zebra                1.0
zern                 1.0
size
benchmark            MLton0    MLton1
barnes-hut           62,752    63,904
boyer               124,842   120,618
checksum             31,498    33,810
count-graphs         51,010    54,258
DLXSimulator         93,661    99,357
fft                  40,542    40,878
fib                  31,498    33,842
hamlet            1,090,075 1,148,635
imp-for              31,514    33,938
knuth-bendix         71,107    72,035
lexgen              152,712   151,096
life                 47,546    47,778
logic                88,034    90,226
mandelbrot           31,602    34,018
matrix-multiply      32,066    34,378
merge                32,714    35,114
mlyacc              462,728   463,992
mpuz                 35,498    38,226
nucleic              70,242    72,506
peek                 39,163    40,323
psdes-random         32,546    34,786
ratio-regions        49,874    51,850
ray                  88,699    92,587
raytrace            238,168   239,400
simple              184,550   184,998
smith-normal-form   140,796   142,700
tailfib              31,226    33,618
tak                  31,666    33,978
tsp                  45,619    46,779
tyan                 89,307    89,435
vector-concat        32,010    34,890
vector-rev           31,890    34,146
vliw                294,868   304,484
wc-input1            54,416    54,064
wc-scanStream        55,128    54,752
zebra               116,843   117,491
zern                 38,085    37,669



-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel