From a C++/JS benchmark

bearophile bearophileHUGS at lycos.com
Sat Aug 6 11:20:45 PDT 2011


Iain Buclaw:

Are you using GDC2-64 bit on Linux?

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

Really? I don't remember discussions about it. What is its cause?


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

This too is something worth fixing. Is this issue in Bugzilla already?


> Point three is interesting, it seems that "sw.peek().msecs" slows down the number
> of iterations in the while loop.

This needs to be fixed.


> With those changes, D implementation is still 21% slower than C++ implementation
> without SIMD.
> http://ideone.com/4PP2D

This is a lot still.

Thank you for your work. I think all three issues are worth fixing, eventually.

Bye,
bearophile


More information about the Digitalmars-d mailing list