On Monday, 22 December 2014 at 10:12:52 UTC, Iov Gherman wrote:
Now, can anyone explain why this program ran faster in Java? I
ran both programs multiple times and the results were always
close to this execution times.
Can the implementation of log() function be the reason for a
slower execution time in D?
I then decided to ran the same program in a single thread, a
simple foreach/for loop. I tried it in C and Go also. This are
the results:
- D: 24 secs, 32 ms.
- Java: 20 secs, 881 ms.
- C: 21 secs
- Go: 37 secs
I run Arch Linux on my PC. I compiled D programs using
dmd-2.066 and used no compile arguments (dmd prog.d).
I used Oracle's Java 8 (tried 7 and 6, seems like with Java 6
the performance is a bit better then 7 and 8).
To compile the C program I used: gcc 4.9.2
For Go program I used go 1.4
I really really like the built in support in D for parallel
processing and how easy is to schedule tasks taking advantage
of workUnitSize.
Thanks,
Iov
DMD is generally going to produce the slowest code. LDC and GDC
will normally do better.