Bye bye, fast compilation times

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Feb 7 00:36:22 UTC 2018


On Tue, Feb 06, 2018 at 11:20:53PM +0000, Andres Clari via Digitalmars-d wrote:
[...]
> Switching from ctRegex! to regex yielded a 50% build time reduction,
> and from what I read even the normal regex are slowing things down
> considerably.

I seem to vaguely recall that in some cases, ctRegex might even perform
slower than regex().  But either way, my use cases for regexes generally
aren't performance-sensitive enough to be worth the trouble of huge
compilation time slowdown -- I just use regex() instead of ctRegex.


[...]
> Btw, my project which is 3517 lines of D builds in 20s disabling the
> ctRegex on an i7 4770k at 4.3Ghz.
> 
> So I'd say once you start doing some more complex usages, D's build
> speed goes out the door.

That depends on what you're doing with it, and also how you're building
it. 3500+ lines isn't a lot of code; it ought to compile pretty fast
unless you're using a lot of (1) templates, (2) CTFE.  Also, I find that
dub builds are excruciatingly slow compared to just invoking dmd
directly, due to network access and rescanning dependencies on every
invocation.  I have a 4700+ line vibe.d project; Diet templates are
template/CTFE-heavy and generally take the longest to build. (I dumped
dub and went back to an SCons-based system with separate compilation for
major subsystems -- as long as I don't recompile Diet templates, the
whole thing can build within seconds; with Diet templates it takes about
30 seconds :-/.)


T

-- 
Unix was not designed to stop people from doing stupid things, because that would also stop them from doing clever things. -- Doug Gwyn


More information about the Digitalmars-d mailing list