From a C++/JS benchmark

Iain Buclaw ibuclaw at ubuntu.com
Sat Aug 6 10:11:53 PDT 2011


== Quote from bearophile (bearophileHUGS at lycos.com)'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


More information about the Digitalmars-d mailing list