On Friday, 9 June 2017 at 18:32:06 UTC, Steven Schveighoffer wrote:
Wow, so that's how D code would look like if it were C++ :)

Well, I cannot (and did not try to) hide where I am coming from. ;-)


The results are quite disappointing. What seems particularly strange to
me is that -boundscheck=off leads to a performance decrease.

That doesn't make much sense, but I'm not an ldc2 user. However, it does note in the help that -release disables bounds checks already.

Sounds like a bug, then.


I did replicate that issue on my box, and mucking around with the implementation didn't help.

In answer to the subject, no D is not slow. However, it's quite possible that std.algorithm.bringToFront is slower than std::rotate, or SortedRange.upperBound is slower than std::upper_bound, or both. I don't think it's a design issue per se, probably more of an implementation issue.

Thank you for confirming the results and your factual explanation notwithstanding my pointed question. ;-)

Maybe I was expecting too much given Andrei's performance oriented talks. I realize that the conceptual groundwork is more important than a concrete implementation that can be easily improved. However, I think that real world out-of-the-box performance - particularly with respect to toy examples (since those are small enough to be literally translated) - is important for prospects to gain confidence in buying into D.

At the current state, at least for such benchmarks, I think, I should not rely on standard library facilities. Unfortunately, that does not increase my confidence.

Reply via email to