preliminary times w/uncurrier

Suresh Jagannathan suresh@research.nj.nec.com
Mon, 22 Nov 1999 20:37:17 -0500


Here are times for representative small benchmarks gathered running on my local
machine.  Basically, (except for life) uncurrying doesn't buy a whole lot.  The
implementation I'm using is what Steven originally suggested: a bottom-up walk
of the program replacing fully applied curried calls with their uncurried
equivalent.  Quickly glancing at the programs (in their uncurried and curried
forms) reveals a number of places where curried functions are indeed replaced,
but I suspect that by and large the benefit of replacing a function call or two
is partially masked by the need to cons a new tuple.  Of course, I haven't been
able to get the kit to run yet.  That's my next step, but unless something very
unusual is taking place there, these numbers imply we're unlikely to see any
significant improvement.


Benchmark      Time (uncurried)  Time (curried)
===============================================
barnes-hut         17.34              17.72
count-graphs       19.37              20.33
knuth-bendix       22.18              22.88
lexgen             47.60              47.02
life               73.02              79.17
logic              79.17              78.12
mandelbrot         19.20              19.12
matrix-multiply    18.21              18.21
nucleic            33.72              33.51
simple             27.34              28.47
tsp                38.46              38.41
zern               67.08              67.47