edin / raytracer

Performance comparison of various compilers
MIT License
57 stars 22 forks source link

D #26

Open Imperatorn opened 3 years ago

Imperatorn commented 3 years ago

Hi! Interesting benchmarks 👍

But I see you are using some deprecated switches for D.

For example "noboundscheck" should be "boundscheck=off".

You're also using a lot of classes instead of structs (compared to the C++ version). If you don't want (don't have time) to change it to structs, consider adding the final keyword before class to make the comparison a bit fairer (vtable) :)

Thanks!

edin commented 3 years ago

Hi, thanks, I think I've tried to apply the same optimisation to D lang but at the time there was no difference in perfromance.

For C and C++ I've spend some extra time trying different aproaches similar to what is done in ADA port, eg. tagged unions, inhertiance, reducing virtual functions etc. and then I've tried to keep idomatic implementation in each language as much as i could.

For now I've added final modifier to classes and I'll check what else can be improved.

I have not tried GCC D lang version but i belive it should have the same performance as C++.

Imperatorn commented 3 years ago

Tbh I didn't spend so much time looking at it 😁, I just noticed there was a lot of classes with public stuff etc. I can take a real look later and report back ☀️