Profiling DMD's Compilation Time with dmdprof

Manu turkeyman at gmail.com
Thu Nov 8 07:59:33 UTC 2018


On Wed, Nov 7, 2018 at 11:55 PM Joakim via Digitalmars-d-announce
<digitalmars-d-announce at puremagic.com> wrote:
>
> On Thursday, 8 November 2018 at 07:41:58 UTC, Manu wrote:
> > On Wed, Nov 7, 2018 at 10:30 PM Joakim via
> > Digitalmars-d-announce <digitalmars-d-announce at puremagic.com>
> > wrote:
> >>
> >> On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:
> >> > On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via
> >> > Digitalmars-d-announce
> >> > <digitalmars-d-announce at puremagic.com> wrote:
> >> >> [...]
> >> >
> >> > "Indeed, a clean build of DMD itself (about 170’000 lines of
> >> > D and 120’000 lines of C/C++) takes no longer than 4 seconds
> >> > to build on a rather average developer machine."
> >> >
> >> > ...what!? DMD takes me... (compiling) ... 1 minute 40
> >> > seconds to build! And because DMD does all-files-at-once
> >> > compilation, rather than separate compilation for each
> >> > source file, whenever you change just one line in one file,
> >> > you incur that entire build time, every time, because it
> >> > can't just rebuild the one source file that changed. You
> >> > also can't do multi-processor builds with all-in-one build
> >> > strategies.
> >> >
> >> > 4 seconds? That's just untrue. D is actually kinda slow
> >> > these days... In my experience it's slower than modern C++
> >> > compilers by quite a lot.
> >>
> >> It sounds like you're not using "a rather average developer
> >> machine" then, as there's no way DMD should be that slow to
> >> build on a core i5 or better:
> >>
> >> https://forum.dlang.org/post/rqukhkpxcvgiefrdcvdq@forum.dlang.org
> >
> > I'm on an i7 with 8 threads and plenty of ram... although
> > threads are useless, since DMD only uses one ;)
>
> Running Windows XP? ;) That does sound like Windows though, as I
> do remember being surprised how long dmd took to build on Win7
> when I tried it 8-9 years back. I still don't think the toolchain
> should be _that_ much slower than linux though.
>
> Btw, the extra cores are _not_ useless for the DMD backend, which
> has always used separate compilation, whether written in C++ or D.

No, you're right, the backend builds in 2-3 seconds.



More information about the Digitalmars-d-announce mailing list