CTFE slower than expected

Manu turkeyman at gmail.com
Tue May 29 05:37:01 PDT 2012


On 29 May 2012 15:10, Jacob Carlborg <doob at me.com> wrote:

> On 2012-05-29 12:25, Manu wrote:
>
>> I've been trying to work out why my compile times have gone to hell
>> recently.
>>
>> I have a lib, it takes 3.5 seconds to compile.
>> I add one CTFE heavy module, it's not huge, certainly much smaller than
>> the rest of the app, and it blows out to 18 seconds. I've done some
>> experiments removing bits and pieces of code, I can isolate the bits
>> that add seconds to the compile time, but the big offenders are one-line
>> mixins which use CTFE fairly aggressively to generate the strings they
>> mix in.
>>
>> Can anyone comment on CTFE as implemented? Why is it so slow? It's
>> certainly not executing a lot of code. I can imagine executing the same
>> routine in an interpreted language like lua would take milliseconds or
>> less, not multiple seconds.
>> What are the bottlenecks? Is there any way to improve it?
>>
>
> Many small string mixins are slow, even if they're string literals and not
> generated. If possible, it's better with one huge string mixin.


That's interesting. I can probably give that a shot.
So you think that's a bigger cost than the CTFE code that generates the
strings?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20120529/c0ed7366/attachment.html>


More information about the Digitalmars-d mailing list