[e-lang] Benchmarking E implementations
Kevin Reid
kpreid at mac.com
Thu Nov 8 19:23:49 EST 2007
Here's some data from my half-baked benchmark program. It's not very
broad coverage, or well-designed, just whatever I've thought to
bother measuring.
The format is: test name, microseconds per execution, number of test
executions, number of dummy loop executions. (Variance in the last
parameter suggests that the system load may have changed during that
time.)
The benchmark program is at:
svn://www.slimy.com/cl-e/e-benchmark/trunk
E-on-Java 0.9.1b:
listAccumWith 100 3536 us [1024 131072]
listAccumWith 1000 41046 us [64 131072]
listAccumWith 10000 971233 us [4 131072]
listAccumFlex 100 2954 us [1024 131072]
listAccumFlex 1000 29234 us [128 131072]
listAccumFlex 10000 287234 us [8 131072]
setAccumWith 100 4138 us [512 131072]
setAccumWith 1000 58249 us [64 131072]
setAccumWith 10000 6283734 us [4 131072]
setAccumFlex 100 3276 us [1024 131072]
setAccumFlex 1000 30851 us [128 131072]
setAccumFlex 10000 324984 us [8 131072]
mapAccumWith 100 4189 us [512 131072]
mapAccumWith 1000 58984 us [64 131072]
mapAccumWith 10000 6250234 us [4 131072]
mapAccumFlex 100 3522 us [1024 131072]
mapAccumFlex 1000 32554 us [128 131072]
mapAccumFlex 10000 320109 us [8 131072]
listRun1 10 11 us [131072 131072]
listRun1 100 11 us [131072 131072]
listRun1 1000 16 us [65536 131072]
listRun2 10 19 us [65536 131072]
listRun2 100 19 us [65536 131072]
listRun2 1000 22 us [65536 131072]
listIterate 10 148 us [16384 131072]
listIterate 100 716 us [4096 131072]
listIterate 1000 6392 us [512 131072]
listDiverge 10 5 us [131072 131072]
listDiverge 100 5 us [131072 131072]
listDiverge 1000 9 us [131072 131072]
listDivergeAnyish 10 Failed: problem: <ClassCastException:
EImplByProxy doesn't coerce to a Class>
listDivergeAnyish 100 Failed: problem: <ClassCastException:
EImplByProxy doesn't coerce to a Class>
listDivergeAnyish 1000 Failed: problem: <ClassCastException:
EImplByProxy doesn't coerce to a Class>
listDivergeFloat 10 313 us [8192 131072]
listDivergeFloat 100 349 us [8192 131072]
listDivergeFloat 1000 768 us [4096 131072]
callMapSimple 10 84 us [32768 131072]
callMapSimple 100 89 us [32768 131072]
callMapSimple 1000 84 us [32768 131072]
callMapSugar 10 28 us [65536 131072]
callMapSugar 100 178 us [16384 131072]
callMapSugar 1000 1667 us [2048 131072]
callHost 3 us [131072 131072]
callE 2 us [131072 131072]
makeAndCallMapSimple 276 us [8192 131072]
makeAndCallMapSugar 359 us [8192 131072]
E-on-CL r938:
listAccumWith 100 560 us [8192 1048576]
listAccumWith 1000 4905 us [512 1048576]
listAccumWith 10000 126247 us [16 524288]
listAccumFlex 100 13497 us [256 1048576]
listAccumFlex 1000 83153 us [32 1048576]
listAccumFlex 10000 792497 us [4 1048576]
setAccumWith 100 10012 us [256 1048576]
setAccumWith 1000 103184 us [32 1048576]
setAccumWith 10000 1142747 us [4 1048576]
setAccumFlex 100 6875 us [512 1048576]
setAccumFlex 1000 90340 us [32 1048576]
setAccumFlex 10000 1113496 us [4 524288]
mapAccumWith 100 475 us [8192 1048576]
mapAccumWith 1000 4760 us [512 1048576]
mapAccumWith 10000 151684 us [16 1048576]
mapAccumFlex 100 2997 us [1024 1048576]
mapAccumFlex 1000 47809 us [64 1048576]
mapAccumFlex 10000 541497 us [4 1048576]
listRun1 10 25 us [131072 1048576]
listRun1 100 32 us [65536 1048576]
listRun1 1000 49 us [65536 1048576]
listRun2 10 4 us [524288 1048576]
listRun2 100 5 us [262144 1048576]
listRun2 1000 16 us [131072 1048576]
listIterate 10 7 us [262144 1048576]
listIterate 100 77 us [32768 1048576]
listIterate 1000 727 us [4096 1048576]
listDiverge 10 5704 us [512 1048576]
listDiverge 100 5362 us [512 1048576]
listDiverge 1000 5268 us [512 1048576]
listDivergeAnyish 10 5291 us [512 1048576]
listDivergeAnyish 100 5858 us [512 1048576]
listDivergeAnyish 1000 9918 us [256 1048576]
listDivergeFloat 10 5434 us [512 1048576]
listDivergeFloat 100 6930 us [512 1048576]
listDivergeFloat 1000 20614 us [128 1048576]
callMapSimple 10 7 us [262144 1048576]
callMapSimple 100 4 us [262144 1048576]
callMapSimple 1000 7 us [262144 1048576]
callMapSugar 10 173 us [16384 1048576]
callMapSugar 100 2728 us [1024 1048576]
callMapSugar 1000 52200 us [64 1048576]
callHost 0 us [524288 1048576]
callE 0 us [1048576 1048576]
makeAndCallMapSimple 21 us [131072 1048576]
makeAndCallMapSugar 58 us [32768 1048576]
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the e-lang
mailing list