On 19/09/11 11:27 PM, Don wrote:
On 17.09.2011 19:58, Peter Alexander wrote:
On 17/09/11 4:32 PM, Adam D. Ruppe wrote:
Peter Alexander wrote:
In contrast, my D hobby project at only a few thousand lines of code
already takes 11s to build and doesn't do any fancy metaprogramming
or use CTFE.
Curious, did you use a library like QtD?
Nope.
I use some parts of the standard library, not much of it though. I also
use Derelict, but again, not much of it.
I'm talking about a -release -inline -O build btw.
For a normal build it's only 1.7 seconds.
I have a suspicion about what's causing this. The main loop of the
optimiser has a O(n^^2) behaviour with consecutive comma expressions.
-release -inline makes a large number of comma expressions (there
doesn't need to be any in your code). I've seen n reach 200; maybe it
gets even higher in your case.
This isn't an intrinsic O(n^^2) algorithm, it would be pretty easy to
fix, I think.
Ah ok, that makes sense.
In the meantime, any tips for avoiding this? Would splitting up large
functions help?