benchamrks on Linux and Cygwin/VMWare

Stephen Weeks MLton@sourcelight.com
Wed, 27 Mar 2002 16:41:39 -0800


MLton on Cygwin is now stable enough that I can cross compile MLton to
run on Cygwin and compile and run all the benchmarks there.  I still
can't self-compile MLton on Cygwin, but hopefully soon.

Here are the benchmark numbers on my 1.6 GhZ Pentium 4.  These should
be taken with a huge grain of salt, since they are for Cygwin running
on Windows NT running on VMWare :-).  At least it's no worse than a
factor of 3X for running time, and for something completely
computational and small, like fib, there is not much of a slowdown at
all.

MLton0 -- mlton on Linux
MLton1 -- mlton on Cygwin

compile time
benchmark         MLton0	MLton1
barnes-hut          1.61	  6.11
checksum            0.39	  2.62
count-graphs        1.12	  4.04
DLXSimulator        2.87	  7.52
fft                 0.84	  3.80
fib                 0.37	  2.61
hamlet             30.93	 78.47
imp-for             0.39	  2.38
knuth-bendix        1.32	  4.16
lexgen              3.80	  9.82
life                0.80	  3.63
logic               1.79	  5.62
mandelbrot          0.39	  2.63
matrix-multiply     0.44	  2.71
md5                 0.79	  3.50
merge               0.40	  2.76
mlyacc             13.54	 32.36
mpuz                0.54	  2.79
nucleic             1.69	  6.08
peek                0.65	  3.20
psdes-random        0.41	  2.86
ratio-regions       1.57	  5.19
ray                 2.38	  6.46
raytrace            6.46	 14.94
simple              4.82	 12.44
smith-normal-form   3.74	 10.13
tailfib             0.36	  2.43
tak                 0.37	  2.58
tensor              1.99	  6.21
tsp                 0.95	  3.94
tyan                2.42	  6.71
vector-concat       0.41	  2.63
vector-rev          0.40	  2.62
vliw                8.41	 20.44
wc-input1           1.12	  4.44
wc-scanStream       1.18	  4.28
zebra               3.61	  9.92
zern                0.69	  3.07

run time
benchmark         MLton0	MLton1
barnes-hut          2.67	  3.09
checksum            1.20	  1.32
count-graphs        2.37	  2.80
DLXSimulator        6.67	 18.88
fft                10.04	 11.08
fib                 2.53	  2.52
hamlet              4.68	 11.27
imp-for             5.45	  5.60
knuth-bendix        4.18	  5.33
lexgen              8.26	 14.29
life                4.16	  4.78
logic               8.15	  9.92
mandelbrot          5.18	  5.20
matrix-multiply     1.79	  1.96
md5                 0.59	  0.67
merge              20.92	 27.50
mlyacc              6.36	 15.49
mpuz                3.56	  3.74
nucleic             7.41	 18.34
peek                0.67	  0.77
psdes-random        4.14	  3.35
ratio-regions       4.88	  6.48
ray                 3.11	  3.49
raytrace            3.97	  4.97
simple              4.47	  7.05
smith-normal-form   0.66	  1.06
tailfib             8.44	  8.62
tak                 5.33	  5.68
tensor              2.46	  2.64
tsp                 4.19	  5.05
tyan                9.44	 14.42
vector-concat       2.28	  3.14
vector-rev          1.34	  1.50
vliw                3.63	  5.80
wc-input1           1.16	  1.92
wc-scanStream       1.19	  2.31
zebra               1.13	  1.34
zern               21.49	 43.84

run time ratio
benchmark	      MLton1
barnes-hut	 	1.16
checksum	 	1.10
count-graphs	 	1.18
DLXSimulator	 	2.83
fft	 		1.10
fib	 		1.00
hamlet	 		2.41
imp-for	 		1.03
knuth-bendix	 	1.28
lexgen	 		1.73
life	 		1.15
logic	 		1.22
mandelbrot	 	1.00
matrix-multiply		1.09
md5		 	1.14
merge		 	1.31
mlyacc		 	2.44
mpuz		 	1.05
nucleic	 		2.48
peek		 	1.15
psdes-random	 	0.81
ratio-regions	 	1.33
ray		 	1.12
raytrace	 	1.25
simple		 	1.58
smith-normal-form 	1.61
tailfib 		1.02
tak		 	1.07
tensor		 	1.07
tsp		 	1.21
tyan		 	1.53
vector-concat	 	1.38
vector-rev	 	1.12
vliw		 	1.60
wc-input1	 	1.66
wc-scanStream	 	1.94
zebra		 	1.19
zern		 	2.04

size
benchmark            MLton0	MLton1
barnes-hut           57,023     88,064
checksum             22,765     61,440
count-graphs         44,237     81,920
DLXSimulator         88,317    124,416
fft                  32,829     71,168
fib                  22,797     61,440
hamlet            1,105,596  1,133,056
imp-for              22,797     61,440
knuth-bendix         64,390    101,376
lexgen              151,877    184,832
life                 39,533     76,800
logic                79,949    117,760
mandelbrot           22,829     61,440
matrix-multiply      23,373     61,952
md5                  32,582     71,168
merge                24,045     62,464
mlyacc              471,077    495,616
mpuz                 27,341     66,048
nucleic              61,613     99,840
peek                 31,526     70,144
psdes-random         24,237     62,976
ratio-regions        42,637     81,408
ray                  85,340    119,808
raytrace            237,001    271,872
simple              181,757    216,064
smith-normal-form   137,583    168,448
tailfib              22,509     61,440
tak                  22,893     61,952
tensor               57,038     89,088
tsp                  37,926     76,288
tyan                 85,830    121,344
vector-concat        23,757     62,464
vector-rev           23,693     62,464
vliw                299,381    323,584
wc-input1            48,446     84,992
wc-scanStream        49,342     86,016
zebra               109,702    143,872
zern                 30,428     68,608