Slow performance compared to C++, ideas?
Walter Bright
newshound2 at digitalmars.com
Thu May 30 19:19:41 PDT 2013
On 5/30/2013 6:26 PM, finalpatch wrote:
> Recently I ported a simple ray tracer I wrote in C++11 to D. Thanks to the
> similarity between D and C++ it was almost a line by line translation, in other
> words, very very close. However, the D verson runs much slower than the C++11
> version. On Windows, with MinGW GCC and GDC, the C++ version is twice as fast as
> the D version. On OSX, I used Clang++ and LDC, and the C++11 version was 4x
> faster than D verson. Since the comparison were between compilers that share
> the same codegen backends I suppose that's a relatively fair comparison. (flags
> used for GDC: -O3 -fno-bounds-check -frelease, flags used for LDC: -O3 -release)
For max speed using dmd, use the flags:
-O -release -inline -noboundscheck
The -inline is especially important.
> I really like the features offered by D but it's the raw performance that's
> worrying me. From what I read D should offer similar performance when doing
> similar things but my own test results is not consistent with this claim. I want
> to know whether this slowness is inherent to the language or it's something I
> was not doing right (very possible because I have only a few days of experience
> with D).
>
> Below is the link to the D and C++ code, in case anyone is interested to have a
> look.
>
> https://dl.dropboxusercontent.com/u/974356/raytracer.d
> https://dl.dropboxusercontent.com/u/974356/raytracer.cpp
More information about the Digitalmars-d
mailing list