D - Language shootout, lets add D
Here's the original shootout : http://www.bagley.org/~doug/shootout/ Here's the windows port : http://dada.perl.it/shootout/ I like the windows port much more for a few reasons, but especially since it lists Delphi and Visual Studio. It seems D is listed in one of the benchmarks : http://dada.perl.it/shootout/sieve.html I think we should contribute code for all the benchmarks. D doesn't fare too well on the sieve benchmark, but there may be a good reason for that. I am very interested in D's performance. I have seen previous statements about it being faster than this and that, but I think submitting D to the Windows port of the language shootout would be best.
Mar 07 2003
Toyotomi wrote:I think we should contribute code for all the benchmarks. D doesn't fare too well on the sieve benchmark, but there may be a good reason for that. I am very interested in D's performance.I wouldn't put too much trust in the shootout benchmarks. The major problem is that a lot of those runs are way too short to make any meaningful assumptions. For example, the sieve benchmark with Visual-C has a running time of 0.09 (!) seconds and D has a time of 0.39 seconds. Or Visual-C ran ~4.3 times (430%) faster. However, if I run the same test on my machine with more iterations the results are much closer (15% or so; see below). I have found that many of the fastest results in both the original shootout and the Windows shootout are skewed because of the too-short running time. I think that a minimum running time of 5-10 seconds is a good base and even longer times are more accurate (above 30 seconds). Here are my Sieve results (2.2 Ghz P4-m Win2k-SP3): : Visual C++ v7.0 Professional "cl /Ox /G6 sieve.c" : sieve.exe 500000 : 37.4 seconds : GCC 3.2 "gcc -O3 -pipe -fomit-frame-pointer -mcpu=pentium3 sieve.c" : sieve.exe 500000 : 41.0 seconds : D 0.59 "dmd -O -inline -release sieve.d" : sieve.exe 500000 : 42.7 seconds So D seems to be about 15% slower than MSVC++. Don't get me wrong, I'm very glad the shootout stuff exists. The code is great for testing all sorts of things. However, I always run my own results to make sure it's accurate for what I'm trying to test. I too would like to see D added to the shootout benchmarks. However, I am most interested in the performance differences between GCC, MSVC++, ICC, and D. So, I've started porting some of the benchmarks to D and I'll post them along with results here: http://www.functionalfuture.com/d Nothing fancy there. Feel free to take that code and run your own tests. If anyone wants to send me shootout benchmarks they have ported, then I'll post them too. E-mail "ddevil" at the above listed domain. As I get time I'll try to run some longer benchmarks and post them as well. -- // Chris
Mar 07 2003