Slow code, slow
bauss
jj_1337 at live.dk
Fri Feb 23 20:41:17 UTC 2018
On Friday, 23 February 2018 at 20:35:44 UTC, Rubn wrote:
> On Friday, 23 February 2018 at 20:15:12 UTC, H. S. Teoh wrote:
>> Now that I got your attention:
>>
>> https://issues.dlang.org/show_bug.cgi?id=18511
>>
>> tl;dr: A trivial piece of code, written as ostensibly
>> "idiomatic D" with std.algorithm and std.range templates,
>> compiles *an order of magnitude* slower than the equivalent
>> hand-written loop. The way the compiler compiles templates
>> needs some serious improvement.
>>
>> (And this is why our current fast-fast-fast slogan annoys me
>> so much. One can argue that it's misleading advertising, given
>> that what's considered "idiomatic D", using features like
>> templates and generic code that's highly-touted as D's strong
>> points, compiles a whole order of magnitude slower than
>> C-style D. Makes me cringe every time I hear "fast code,
>> fast". Our old slogan is a much more accurate description of
>> the current state of things.)
>>
>>
>> T
>
> It's not that big of a slow down. Using "fast" you don't import
> any modules so they never have to be parsed. That's pretty much
> all of phobos you don't have to parse in that example. That's
> just the initial cost too. In a big project this won't make a
> difference. You create a tiny example that is irrelevant to the
> larger scale, that takes 0.3 seconds longer to compile. It's a
> magnitude slower cause in your fast example it's literately
> only parsing 5 lines of code instead of hundreds of lines like
> it is in your slow example.
I disagree.
It actually matters a lot for big projects with lots of
templates, especially nested templates. Gets a whole lot worse
when it's templates within mixin templates with templates.
It's not just a "0.3" second difference, but can be half a minute
or even more.
More information about the Digitalmars-d
mailing list