On Saturday, 12 February 2022 at 20:22:44 UTC, H. S. Teoh wrote:
>On Sat, Feb 12, 2022 at 07:31:28PM +0000, rempas via Digitalmars-d wrote: [...]
>If you get to a point that runtime becomes too slow for a specific task then I don't think that 20%-40% will make such of a big difference really. There may be cases that even the smallest performance boost will make the difference but were that a lot in your experience?
[...]
20%-40% is a HUGE difference. Think about a 60fps 3D game where you have only 16ms to update the screen for the next frame. If your code takes ~13ms to update a frame when compiled with LDC -O2, then compiling D will not even be an option because it would not be able to meet the framerate and the game will be jerky and unplayable. If the difference is 2% or 3% then there may still be room for negotiation. 20%-40% is half an order of magnitude. There is no way you can compromise with that.
Also, for long-running CPU-intensive computations, which one would you rather have: your complex computation to finish in 2 days, which may just make the deadline, or ~4 days, which will definitely not meet the deadline? Again, if the difference is 2% or 3% then you may still be able to work with it. 20%-40% is unacceptable.
T
The thing with dmd isn't just the performance that also it's quite buggy when it starts optimizing.
Quite a few libraries have a gotcha due to dmd (especially -inline
) that has to be worked around (the inliner can basically ignore language semantics which can break NRVO for example)