[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