Benchmarks revisited
- Posted by mattlewis (admin) May 21, 2009
- 1189 views
After fixing the memory leak, I've re-run the binary trees benchmark. I'm on the same machine, but different operating system. I ran with a parameter of 16, like before, though the official stuff has moved to 20 (they've got more powerful equipment than I do).
Language | Version | Time (s) | Alioth Scale | My Scale |
---|---|---|---|---|
g++ | 4.3.3 | 0.73 | 1 | 1 |
gcc | 4.3.3 | 2.98 | 3.2 | 4.08 |
euc | r2089 | 7.11 | 9.74 | |
exu | 3.1.1 | 20.15 | 27 | |
eui | r2089 | 23.31 | 31 | |
ruby | 1.9.0 | 34.17 | 43 | 46 |
python | 2.6.2 | 50.99 | 123 | 69 |
perl | 5.10.0 | 99.22 | 236 | 135 |
ruby | 1.8.7 | 105.77 | 187 | 144 |
I reran the C/C and translated euphoria with 20:
Language | Version | Time (s) | Alioth Scale | My Scale |
---|---|---|---|---|
g++ | 4.3.3 | 16.65 | 1 | 1 |
gcc | 4.3.3 | 58.21 | 3.2 | 3.5 |
euc | r2089 | 150.36 | 9.03 |
The gcc estimate got closer to theirs, but it's interesting to see. The C code used boost::object_pool, which meant that they weren't going to the OS for memory all the time. exu 3.1.1 does something similar, which I suspect is the difference between 3.1.1 and the current 4.0 build.
Either way, this shows that in this test, at least, ruby is getting closer to euphoria, though perl is pretty far down.
Matt
PS: The last benchmarks, for reference:
Language | Version | Time (s) | Scale |
---|---|---|---|
Java | 6 | 1 | |
C | OpenWatcom 1.8 | 7 | 4.5 |
euphoria | euc r2079 | 11 | 6.51 |
D | 8 | ||
euphoria | 3.1.1 | 18 | 10.65 |
python | psycho | 14 | |
euphoria | eui r2079 | 31 | 18 |
ruby | 1.9 | 19 | |
JavaScript | SpiderMonkey | 19 | |
python | IronPython | 25 | |
python | 32 | ||
ruby | 60 | ||
perl | 5.8.8 | 140 | 83 |