Profiling DMD's Compilation Time with dmdprof
Joakim
dlang at joakim.fea.st
Thu Nov 8 07:53:26 UTC 2018
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.
More information about the Digitalmars-d-announce
mailing list