Profiling DMD's Compilation Time with dmdprof
Joakim
dlang at joakim.fea.st
Thu Nov 8 08:52:12 UTC 2018
On Thursday, 8 November 2018 at 08:29:28 UTC, Manu wrote:
> On Thu, Nov 8, 2018 at 12:10 AM Joakim via
> Digitalmars-d-announce <digitalmars-d-announce at puremagic.com>
> wrote:
>>
>> On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:
>> > On Wed, Nov 7, 2018 at 10:30 PM Vladimir Panteleev via
>> > Digitalmars-d-announce
>> > <digitalmars-d-announce at puremagic.com> wrote:
>> >>
>> >> On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir
>> >> Panteleev wrote:
>> >> > It was definitely about 4 seconds not too long ago, a few
>> >> > years at most.
>> >>
>> >> No, it's still 4 seconds.
>> >>
>> >> digger --offline --config-file=/dev/null -j auto -c
>> >> local.cache=none build 7.31s user 1.51s system 203% cpu
>> >> 4.340 total
>> >>
>> >> > It does seem to take more time now; I wonder why.
>> >>
>> >> If it takes longer, then it's probably because it's being
>> >> built in one CPU core, or in the release build.
>> >
>> > https://youtu.be/msWuRlD3zy0
>>
>> Lol, I saw that link and figured it was either some comedy
>> video, like the Python ones Walter sometimes posts, or you
>> were actually showing us how long it takes. Pretty funny to
>> see the latter.
>
> It's not so funny when every one-line tweak burns 2 minutes of
> my life away.
I was laughing that you actually proved your point with direct
video evidence, obviously it's sad that it takes so long.
>> > DMD only builds with one core, since it builds altogether.
>>
>> Yes, but your build time is unusually long even with one core.
>> Are the D backend and frontend at least built in parallel to
>> each other?
>
> That doesn't matter, you can clearly see the backend built in
> less than 2 seconds.
The C/C++ files in the beginning are built very fast, but the D
files in the backend appear to take much longer, kicking in at
1:18 of your video and then the next compilation step starts at
1:40.
I suspect part of the problem is that your build is being done
completely serially, even for separate compilation. I have no
experience with VS, so I don't know why that is.
>> It doesn't seem to be even doing that, though they're separate
>> invocations of DMD.
>
> I didn't configure the build infrastructure!
Maybe you can? I have no experience with VS, but surely it has
some equivalent of ninja -j5?
>> > And all builds are release builds... what good is a debug
>> > build? DMD
>> > is unbelievably slow in debug. If it wasn't already slow
>> > enough... if
>> > I try and build with a debug build, it takes closer to 5
>> > minutes.
>> >
>> > I suspect one part of the problem is that DMD used to be
>> > built with a C compiler, and now it's built with DMD... it
>> > really should be built with LDC at least?
>>
>> Could be part of the problem on Windows, dunno.
>
> Well... ffs... people need to care about this! >_<
I agree that the official release of DMD for Windows should be
faster, and we should be building it with ldc... if that's the
problem.
More information about the Digitalmars-d-announce
mailing list