== Quote from bearophile ([email protected])'s article > Iain Buclaw: > > I will look into this later from my workstation. > The remaining thing to look at is just the small performance difference > between the D-GDC version and the C++-G++ version. > Bye, > bearophile
Three things that helped improve performance in a minor way for me: 1) using pointers over dynamic arrays. (5% speedup) 2) removing the calls to CalVector4's constructor (5.7% speedup) 3) using core.stdc.time over std.datetime. (1.6% speedup) Point one is pretty well known issue in D as far as I'm aware. Point two is not an issue with inlining (all methods are marked 'inline'), but it did help remove quite a few movss instructions being emitted. Point three is interesting, it seems that "sw.peek().msecs" slows down the number of iterations in the while loop. With those changes, D implementation is still 21% slower than C++ implementation without SIMD. http://ideone.com/4PP2D
