Is D slow?

Honey via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 9 15:34:08 PDT 2017


On Friday, 9 June 2017 at 21:11:50 UTC, Steven Schveighoffer 
wrote:
> Just to show you what I meant, I changed your code to eliminate 
> the functors completely, the main function now looks like this:
>
>
>     foreach (i;  0 .. N)
>     {
>         insertionSort!((a, b) => lt(a, b))(v);
>         insertionSort!((a, b) => lt(b, a))(v);
>     }
>
> I'm sure there's also a way to reduce the initialization of the 
> array to a few lines (or maybe even one?), but didn't have time 
> to think about it.

Thanks for your hints. I'm sure there are many things to improve 
(also in the C++ version). It should be pretty obvious that my 
knowledge of D is lacking.


> Well, D is pretty fast, as fast as C++ or C. What I mean is 
> that there is no inherent overhead -- both can produce exactly 
> the same code.

I agree.


> However, there are some parts of C/C++ that have been optimized 
> to death. It's one of those things where D's version of rotate 
> probably hasn't had as much scrutiny as C++'s version. We are 
> always looking to improve such things, and more investigation 
> and suggestions are most welcome! It's why I filed the bug 
> report.

Thank you for filing the bug!

bringToFrontImpl does not seem to exploit bidirectional or random 
access properties.


> Try to find something besides insertion sort to test with I 
> think ;) D is pretty fast at a lot of things, and pleasant to 
> write. You just found one test case that isn't (and we will fix 
> it, I'm sure).

I guess that benchmarking comparison of string tuples will not 
result in happy faces unless a single-pass version of the 
comparison function is used.


More information about the Digitalmars-d-learn mailing list