On Friday, 9 June 2017 at 19:29:35 UTC, Honey wrote:
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.
Real world and toy are mutually exclusive categories, and I am
not sure the empirical evidence is consistent with your
perspective that it is what prospects need to see before
exploring D, though that is an interesting perspective. I
highly recommend Weka.io talks if you would like to see how one
larger D user has found performance in practice.
If you are expecting a perfectly finished glossy product then I
don't think that - at least in the current year - D will be
necessarily for you. Polish improves every year, but it's not
the principal focus of the community currently. It's more the
opposite - pay the price up front in different ways and reap the
returns again and again over time.