Re: Questions from a Beginner.
- Posted by mattlewis (admin) May 15, 2009
- 1344 views
Depends. Do you call this a myth? http://lists.topica.com/lists/EUforum/read/message.html?mid=1721503790&sort=d&start=64292
Nice. But that's only one benchmark that "coincidently" does not seem to catch EU's copying problems. Try - hm, perhaps - the meteor-contest. (But most benchmarks of the language shootout are crap anyway.)
The meteor contest looks interesting, but it's also pretty challenging. Definitely something to look into. I tried the binary-trees benchmark (described as allocate and deallocate lots of trees). I'm not sure that there's a lot of copying that would go on, but certainly lots of reference counting should be happening.
I ran against the stuff I have at hand (perl and open watcom). I've used the perl rankings from the rankings page to estimate where euphoria and open watcom might have fallen among other popular programs. Note that the actual Scales (from the shootout page) are in bold, and my estimates are in italics.
For the OpenWatcom test, I used the C GNU gcc submission, which was #5 on the list. Here was the command line I used to build it:
wcl386 /w0 /zq /j /zp4 /fpc /5r /ol /zp4 binary-trees.cThe flags are those used to build the back end of euphoria.
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 |
The versions for some of the languages weren't mentioned, and, of course, my version of perl could be different. I'm pretty sure they ran their tests on linux. I'm on XP. The most interesting thing about this, however, is probably the fact that 3.1.1 beat the current version of 4.0.
Looking at the memory usage, it's pretty obvious that there's a memory leak in the current code. 3.1.1 never seems to go over about 14MB, while r2709 eats up about 1.8GB for me. The translated version never goes over 20MB, so it's definitely an interpreter issue. The 3.1.1 and r2079 translated memory usages look pretty favorable compared to others. I'm sure that cleaning up that leak will speed up the performance of 4.0.
I think euphoria holds up pretty well, especially taking the translator into account.
Matt