March 07, 2003
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.
March 08, 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