On Thursday, 16 August 2012 at 13:15:41 UTC, Matthias Pleh wrote:
I've created a simple 4x4 Matrix struct and have made some tests, with surprising results. (although I've heard from similar results in c++)

struct mat4 {
  float[4][4] m;
  mat4 opMul(in mat4 _m);
}
mat4 mul(in mat4 m1, in mat4 m2);


I've tested this 2 multiplication functions (overloaded and free).

Result (100_000 times, windows7 64bit, 32bit build):

DMD: (dmd -O -inline -release)
opMul:   20 msecs
mul  : 1355 msecs

GDC: (gdc -m32 -O3 -frelease)
opMul:   10 msecs
mul  : 1481 msecs


Why this huge difference in performance?

See http://stackoverflow.com/questions/5142366/how-fast-is-d-compared-to-c.
Its not current, but it has some hints at what to look at.

I suggest changing 'in' to 'const ref' for a real boost; though the semantic difference between the two isn't exactly clear to me in the documentation.

Reply via email to