On Thursday, 22 September 2016 at 16:09:49 UTC, Sandu wrote:
It is often being claimed that D is at least as fast as C++.
Now, I am fairly new to D. But, here is an example where I want
to see how can this be made possible.
So far my C++ code compiles in ~850 ms.
I assume you meant that it runs in that time.
While my D code runs in about 2.1 seconds.
Benchmarking C++ vs D is less trivial than it looks, for various
reasons:
- compiler optimizations:
- which compilers (both C++ and D) are you using? Are you aware
of the differences in code optimization between DMD, GDC and LDC?
- which flags are you passing to your C++ and D compilers?
- your code is actually testing the compiler ability in loop
unrolling, constant folding and operation hoisting
- code semantics: C++ and D, when they look similar, they usually
produce the same results, but the often behave very differently
internally:
- in the posted code you allocate a lot of managed memory,
putting a big burden on the garbage collector, which in C++ you
don't do, because you talk directly to the C runtime
So it's difficult to extract useful data from this kind of
benchmark.