[MLton] benchmarks with -representation {normal,packed}

Stephen Weeks MLton@mlton.org
Fri, 23 Apr 2004 10:49:33 -0700


Now that the cast problem is fixed, all the regressions (except for
fixed-integer) and benchmarks work with -representation packed.  Here
are the benchmark results.  There was small speedup on some
benchmarks, and only one with noticable slowdown.  There was conistent
small improvement on code size, up to a few percent.  There were no
significant hits on compile time.

MLton0 -- mlton -representation normal
MLton1 -- mlton -representation packed

Here are the run time ratios that were more than 0.01 away from 1.

run time ratio
benchmark         MLton1
count-graphs      0.95
hamlet            0.98
lexgen            0.96
life              0.89
mpuz              0.93
output1           0.96
ratio-regions     0.98
ray               0.95
raytrace          0.97
tsp               1.02
tyan              0.98
wc-scanStream     1.06
zebra             0.95

size
benchmark            MLton0    MLton1
DLXSimulator        167,117   165,501
barnes-hut          137,501   137,245
boyer               217,701   217,061
checksum            107,597   107,341
count-graphs        124,945   124,557
fft                 125,553   125,361
fib                 105,861   105,605
hamlet            1,333,733 1,305,829
imp-for             105,861   105,605
knuth-bendix        143,469   142,821
lexgen              225,434   223,978
life                125,189   123,613
logic               166,045   167,005
mandelbrot          105,957   105,701
matrix-multiply     108,337   108,081
md5                 111,109   110,853
merge               107,285   107,037
mlyacc              541,502   533,134
model-elimination   665,788   657,276
mpuz                109,985   109,673
nucleic             256,177   255,937
output1             124,531   124,271
peek                115,569   115,353
psdes-random        106,201   105,945
ratio-regions       134,057   133,801
ray                 213,137   208,993
raytrace            313,679   311,215
simple              275,405   274,393
smith-normal-form   212,377   211,697
tailfib             105,989   105,733
tak                 105,837   105,581
tensor              138,796   138,412
tsp                 116,365   116,245
tyan                173,309   172,061
vector-concat       107,593   107,245
vector-rev          106,941   106,685
vliw                425,290   415,818
wc-input1           144,557   144,213
wc-scanStream       139,217   138,913
zebra               176,597   159,021
zern                140,263   140,039

compile time
benchmark         MLton0 MLton1
DLXSimulator        7.48   7.46
barnes-hut          6.65   6.64
boyer               8.49   9.02
checksum            5.14   5.15
count-graphs        5.82   5.83
fft                 5.67   5.70
fib                 5.15   5.12
hamlet             49.73  54.76
imp-for             5.16   5.18
knuth-bendix        6.18   6.19
lexgen              8.57   8.81
life                5.69   5.66
logic               6.68   6.87
mandelbrot          5.15   5.16
matrix-multiply     5.24   5.25
md5                 5.39   5.40
merge               5.17   5.18
mlyacc             25.28  26.32
model-elimination  24.61  25.25
mpuz                5.29   5.30
nucleic            64.00  65.02
output1             5.50   5.52
peek                5.31   5.34
psdes-random        5.18   5.16
ratio-regions       6.21   6.30
ray                 7.78   7.73
raytrace           12.87  12.99
simple              9.83   9.85
smith-normal-form   9.53  12.92
tailfib             5.11   5.13
tak                 5.12   5.12
tensor              7.09   7.07
tsp                 5.64   5.65
tyan                7.44   7.38
vector-concat       5.19   5.19
vector-rev          5.16   5.14
vliw               16.32  16.12
wc-input1           6.12   6.12
wc-scanStream       6.05   6.07
zebra               7.29   7.02
zern                5.71   5.73