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