== 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

Reply via email to