digitalmars.D.announce - Profiling DMD's Compilation Time with dmdprof
- Vladimir Panteleev (4/4) Nov 06 2018 This is a tool + article I wrote in February, but never got
- H. S. Teoh (9/15) Nov 06 2018 I don't have the time to look into this right now, but at a cursory
- Vladimir Panteleev (4/10) Nov 06 2018 Great. Also, assuming that DMD still never deallocates, it should
- welkam (8/10) Nov 08 2018 Based on my profiling it seems that most memory is allocated in
- Atila Neves (4/8) Nov 06 2018 Awesome, great work!
- H. S. Teoh (7/18) Nov 06 2018 OTOH, I really really hate that the compiler, in the name of faster
- Patrick Schluter (8/26) Nov 07 2018 Now that the compiler is completely in D, wouldn't it be a good
- rikki cattermole (3/9) Nov 07 2018 No, that would be a bad idea currently.
- Neia Neutuladh (4/16) Nov 07 2018 That issue describes a memory leak. A memory leak of half a megabyte per...
- rikki cattermole (7/24) Nov 07 2018 Its a symptom of a larger set of problems. The frontend is not quite
- Neia Neutuladh (5/12) Nov 07 2018 In the short term, that means turning on the GC won't do much, but it at...
- Manu (3/23) Nov 07 2018 Also, in my experience, DMD seems to build a LOT slower now that it's
- Manu (2/29) Nov 07 2018 Oh, and also, nice work Vladimir! This is awesome! :)
- Manu (13/17) Nov 07 2018 "Indeed, a clean build of DMD itself (about 170’000 lines of D and
- Vladimir Panteleev (4/14) Nov 07 2018 It was definitely about 4 seconds not too long ago, a few years
- Vladimir Panteleev (8/11) Nov 07 2018 No, it's still 4 seconds.
- Manu (10/21) Nov 07 2018 https://youtu.be/msWuRlD3zy0
- Joakim (9/39) Nov 08 2018 Lol, I saw that link and figured it was either some comedy video,
- Manu (7/49) Nov 08 2018 It's not so funny when every one-line tweak burns 2 minutes of my life a...
- Petar Kirov [ZombineDev] (5/35) Nov 08 2018 The problem definitely looks like is with your Windows. Perhaps
- John Chapman (7/45) Nov 08 2018 I don't think it's just *his* Windows - DMD builds on my Windows
- Petar Kirov [ZombineDev] (4/9) Nov 08 2018 BTW, last time I tried WSL it had similar performance to Linux,
- Vladimir Panteleev (9/19) Nov 08 2018 I think the default posix.mak target is neither a debug nor a
- Vladimir Panteleev (5/11) Nov 14 2018 I just got to try a side-by-side comparison of a release and
- Manu (9/20) Nov 15 2018 I'm not sure how VisualStudio (read: MSBuild) should behave
- Vladimir Panteleev (6/14) Nov 15 2018 That seems to take about half the time for me (2 out of the 4
- Manu (7/21) Nov 16 2018 What was the batch size for module grouping? I wonder if batching too
- Vladimir Panteleev (3/4) Nov 17 2018 I just use dmd -i, which compiles everything at once (except
- welkam (17/17) Nov 17 2018 I just updated DMD on my windows and tried to compile hello
- rikki cattermole (2/20) Nov 17 2018 Just in case, did you disable your anti-virus first?
- welkam (5/6) Nov 17 2018 Had to edit registry to turn that thing off and it still some
- Manu (4/19) Nov 07 2018 100 seconds is a lot more than 4... 25x even, that's a pretty big
- Walter Bright (4/5) Nov 08 2018 That's easy. It's because nobody has profiled it for years.
- Joakim (5/22) Nov 07 2018 It sounds like you're not using "a rather average developer
- Manu (4/29) Nov 07 2018 I'm on an i7 with 8 threads and plenty of ram... although threads are
- Joakim (7/41) Nov 07 2018 Running Windows XP? ;) That does sound like Windows though, as I
- Manu (3/45) Nov 07 2018 No, you're right, the backend builds in 2-3 seconds.
- Walter Bright (3/5) Nov 08 2018 So does every other compiler.
- Manu (5/10) Nov 08 2018 Right.
- Atila Neves (12/35) Nov 08 2018 Everything on Windows is slower. I'm 99% sure the fault lies with
- Jacob Carlborg (9/11) Nov 08 2018 This is my result on macOS:
- H. S. Teoh (17/30) Nov 08 2018 [...]
- Jacob Carlborg (5/12) Nov 08 2018 21 seconds on a Windows 10 virtual machine compiling using the win32.mak...
- Vladimir Panteleev (3/5) Nov 08 2018 Sounds like we're narrowing it down to the Visual Studio solution.
- John Chapman (5/11) Nov 08 2018 Well, I'm just using win32.mak in a command prompt and it takes
- kinke (13/15) Nov 08 2018 Mildly interested, I gave DMD master a shot with my 5-years old
- Rainer Schuetze (15/32) Nov 08 2018 Similar numbers for me too. Please note that the auto-tester shows
- Basile B. (12/16) Nov 17 2018 I put a start to the project then today i remembered callgrind...
- Vladimir Panteleev (5/16) Nov 17 2018 It sounds like you misunderstood the purpose of dmdprof.
- Basile B. (7/26) Nov 17 2018 Damn, you're right. Actually i didn't try your stuff at all and
- Nicholas Wilson (2/7) Nov 18 2018 My bad.
This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.
Nov 06 2018
On Tue, Nov 06, 2018 at 06:00:22PM +0000, Vladimir Panteleev via Digitalmars-d-announce wrote:This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.I don't have the time to look into this right now, but at a cursory glance, WOW. This is awesome! It looks like it would be really useful one day when I try to tackle the dmd-on-lowmem-system problem again. This will greatly help identify which Phobos modules cause big slowdowns on a low-memory host system. T -- Recently, our IT department hired a bug-fix engineer. He used to work for Volkswagen.
Nov 06 2018
On Tuesday, 6 November 2018 at 19:01:58 UTC, H. S. Teoh wrote:I don't have the time to look into this right now, but at a cursory glance, WOW. This is awesome! It looks like it would be really useful one day when I try to tackle the dmd-on-lowmem-system problem again. This will greatly help identify which Phobos modules cause big slowdowns on a low-memory host system.Great. Also, assuming that DMD still never deallocates, it should be pretty easy to turn this into a memory usage profiler by measuring the delta between the resident set size in samples.
Nov 06 2018
On Tuesday, 6 November 2018 at 19:01:58 UTC, H. S. Teoh wrote:It looks like it would be really useful one day when I try to tackle the dmd-on-lowmem-system problem again.Based on my profiling it seems that most memory is allocated in void importAll(Scope* sc) found in attrib.d . A person with more knowledge of DMD source could create new allocator for scope data and when its no longer needed just dealloc all. My intuition says that after IR is generated we no longer need scope information. Here is profile data for simple file. https://imgur.com/a/ROa6JNd
Nov 08 2018
On Tuesday, 6 November 2018 at 18:00:22 UTC, Vladimir Panteleev wrote:This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.Awesome, great work! I really really hate waiting for the compiler.
Nov 06 2018
On Tue, Nov 06, 2018 at 07:44:41PM +0000, Atila Neves via Digitalmars-d-announce wrote:On Tuesday, 6 November 2018 at 18:00:22 UTC, Vladimir Panteleev wrote:OTOH, I really really hate that the compiler, in the name of faster compilation, eats up all available RAM and gets OOM-killed on a low memory system, so no amount of waiting will get me an executable. T -- Famous last words: I wonder what will happen if I do *this*...This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.Awesome, great work! I really really hate waiting for the compiler.
Nov 06 2018
On Tuesday, 6 November 2018 at 21:52:30 UTC, H. S. Teoh wrote:On Tue, Nov 06, 2018 at 07:44:41PM +0000, Atila Neves via Digitalmars-d-announce wrote:Now that the compiler is completely in D, wouldn't it be a good idea to activate the GC in the compiler. I know that it requires some care for bootstrapping the compiler when there are dependencies to the D runtime, but the compiler would be an excellent example of the advantage of the GC (i.e. dumb fast allocations as long as there's memory, collection when no memory left which is miles away better than to get OOM-killed).On Tuesday, 6 November 2018 at 18:00:22 UTC, Vladimir Panteleev wrote:OTOH, I really really hate that the compiler, in the name of faster compilation, eats up all available RAM and gets OOM-killed on a low memory system, so no amount of waiting will get me an executable.This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.Awesome, great work! I really really hate waiting for the compiler.
Nov 07 2018
On 08/11/2018 1:46 AM, Patrick Schluter wrote:Now that the compiler is completely in D, wouldn't it be a good idea to activate the GC in the compiler. I know that it requires some care for bootstrapping the compiler when there are dependencies to the D runtime, but the compiler would be an excellent example of the advantage of the GC (i.e. dumb fast allocations as long as there's memory, collection when no memory left which is miles away better than to get OOM-killed).No, that would be a bad idea currently. https://issues.dlang.org/show_bug.cgi?id=18811
Nov 07 2018
On Thu, 08 Nov 2018 01:49:49 +1300, rikki cattermole wrote:On 08/11/2018 1:46 AM, Patrick Schluter wrote:That issue describes a memory leak. A memory leak of half a megabyte per full compiler invocation on a small file should still result in a lot of code being compilable on low-end machines that currently isn't.Now that the compiler is completely in D, wouldn't it be a good idea to activate the GC in the compiler. I know that it requires some care for bootstrapping the compiler when there are dependencies to the D runtime, but the compiler would be an excellent example of the advantage of the GC (i.e. dumb fast allocations as long as there's memory, collection when no memory left which is miles away better than to get OOM-killed).No, that would be a bad idea currently. https://issues.dlang.org/show_bug.cgi?id=18811
Nov 07 2018
On 08/11/2018 4:17 AM, Neia Neutuladh wrote:On Thu, 08 Nov 2018 01:49:49 +1300, rikki cattermole wrote:Its a symptom of a larger set of problems. The frontend is not quite ready to have the GC turned on full time. Based upon my testing, that little memory leak prevents pretty much *all* memory allocated by the GC to not be collected. I don't know why, but for some reason it pins it. Mind you, my testing could have been flawed, and needs more eyes on it *shrug*.On 08/11/2018 1:46 AM, Patrick Schluter wrote:That issue describes a memory leak. A memory leak of half a megabyte per full compiler invocation on a small file should still result in a lot of code being compilable on low-end machines that currently isn't.Now that the compiler is completely in D, wouldn't it be a good idea to activate the GC in the compiler. I know that it requires some care for bootstrapping the compiler when there are dependencies to the D runtime, but the compiler would be an excellent example of the advantage of the GC (i.e. dumb fast allocations as long as there's memory, collection when no memory left which is miles away better than to get OOM-killed).No, that would be a bad idea currently. https://issues.dlang.org/show_bug.cgi?id=18811
Nov 07 2018
On Thu, 08 Nov 2018 14:35:29 +1300, rikki cattermole wrote:Its a symptom of a larger set of problems. The frontend is not quite ready to have the GC turned on full time. Based upon my testing, that little memory leak prevents pretty much *all* memory allocated by the GC to not be collected. I don't know why, but for some reason it pins it. Mind you, my testing could have been flawed, and needs more eyes on it *shrug*.In the short term, that means turning on the GC won't do much, but it at least probably won't hurt. In the long term, that bug might be covering up crashes and memory corruption, so turning it on by default is not a great idea.
Nov 07 2018
On Wed, Nov 7, 2018 at 8:16 PM Manu <turkeyman gmail.com> wrote:On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Also, in my experience, DMD seems to build a LOT slower now that it's in D than it used to when it was C++.This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful."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.
Nov 07 2018
On Wed, Nov 7, 2018 at 8:18 PM Manu <turkeyman gmail.com> wrote:On Wed, Nov 7, 2018 at 8:16 PM Manu <turkeyman gmail.com> wrote:Oh, and also, nice work Vladimir! This is awesome! :)On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Also, in my experience, DMD seems to build a LOT slower now that it's in D than it used to when it was C++.This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful."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.
Nov 07 2018
On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful."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.
Nov 07 2018
On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:...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 was definitely about 4 seconds not too long ago, a few years at most. It does seem to take more time now; I wonder why.
Nov 07 2018
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 totalIt 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.
Nov 07 2018
On Wed, Nov 7, 2018 at 10:30 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0 DMD only builds with one core, since it builds altogether. 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?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 totalIt 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.
Nov 07 2018
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 puremagic.com> wrote: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.On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0It 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 totalIt 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.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? It doesn't seem to be even doing that, though they're separate invocations of DMD.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.
Nov 08 2018
On Thu, Nov 8, 2018 at 12:10 AM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:It's not so funny when every one-line tweak burns 2 minutes of my life away.On Wed, Nov 7, 2018 at 10:30 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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.On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0It 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 totalIt 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.That doesn't matter, you can clearly see the backend built in less than 2 seconds.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?It doesn't seem to be even doing that, though they're separate invocations of DMD.I didn't configure the build infrastructure!Well... ffs... people need to care about this! >_<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.
Nov 08 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 puremagic.com> wrote:I was laughing that you actually proved your point with direct video evidence, obviously it's sad that it takes so long.On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:It's not so funny when every one-line tweak burns 2 minutes of my life away.On Wed, Nov 7, 2018 at 10:30 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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.On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0It 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 totalIt 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.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.That doesn't matter, you can clearly see the backend built in less than 2 seconds.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?Maybe you can? I have no experience with VS, but surely it has some equivalent of ninja -j5?It doesn't seem to be even doing that, though they're separate invocations of DMD.I didn't configure the build infrastructure!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.Well... ffs... people need to care about this! >_<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.
Nov 08 2018
On Thu, Nov 8, 2018 at 12:55 AM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 08:29:28 UTC, Manu wrote:msbuild does parallel builds quite effectively. I expect it perceives a dependency between jobs which cause it to serialise. Maybe there's a legit dependency, or maybe the msbuild script has a problem? Either way, it's not acceptable. I would log this is maximum priority bug. (https://issues.dlang.org/show_bug.cgi?id=19377)On Thu, Nov 8, 2018 at 12:10 AM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Maybe you can? I have no experience with VS, but surely it has some equivalent of ninja -j5?On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:I didn't configure the build infrastructure!I think it's a combination of problems, and primary problem being criminal negligence!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.Well... ffs... people need to care about this! >_<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.
Nov 08 2018
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 puremagic.com> wrote:The problem definitely looks like is with your Windows. Perhaps it's caused by an antivirus software? For the record on my machine it's consistently below 4sec. See: https://asciinema.org/a/G5lLRPsLLMb5IaqPrmhZagop4On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0 DMD only builds with one core, since it builds altogether. 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?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 totalIt 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.
Nov 08 2018
On Thursday, 8 November 2018 at 14:33:34 UTC, Petar Kirov [ZombineDev] wrote:On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:I don't think it's just *his* Windows - DMD builds on my Windows 10 Core i3 laptop with anti-virus disabled in about 1m 40s too. And it's always taken about this long, even when the source was C++. I'm tempted to try it on Linux on the same machine to see what I'm missing out on.On Wed, Nov 7, 2018 at 10:30 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:The problem definitely looks like is with your Windows. Perhaps it's caused by an antivirus software? For the record on my machine it's consistently below 4sec. See: https://asciinema.org/a/G5lLRPsLLMb5IaqPrmhZagop4On Thursday, 8 November 2018 at 06:08:20 UTC, Vladimir Panteleev wrote:https://youtu.be/msWuRlD3zy0 DMD only builds with one core, since it builds altogether. 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?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 totalIt 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.
Nov 08 2018
On Thursday, 8 November 2018 at 16:51:55 UTC, John Chapman wrote:I don't think it's just *his* Windows - DMD builds on my Windows 10 Core i3 laptop with anti-virus disabled in about 1m 40s too. And it's always taken about this long, even when the source was C++. I'm tempted to try it on Linux on the same machine to see what I'm missing out on.BTW, last time I tried WSL it had similar performance to Linux, IIRC. Perhaps this is why I haven't noticed such slow downs when building dmd on the machines I tried.
Nov 08 2018
On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:https://youtu.be/msWuRlD3zy0 DMD only builds with one core, since it builds altogether. 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 think the default posix.mak target is neither a debug nor a release build, meaning it is neither optimized nor has the additional asserts/invariants of a debug build. Not sure the Visual Studio solution has that, but perhaps it could be an acceptable middle ground.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...Well, my latest test was against master, that even has parts of the backend apparently converted to D, so I'm not sure that's relevant.
Nov 08 2018
On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote: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 just got to try a side-by-side comparison of a release and debug (as in `make -f posix.mak BUILD=debug`) build of DMD. With a 25KLOC project, the debug build is only 36% slower. Maybe the experience on Windows / Visual Studio is very different.
Nov 14 2018
Wed, Nov 14, 2018 at 12:25 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 07:54:56 UTC, Manu wrote:I'm not sure how VisualStudio (read: MSBuild) should behave differently than make? It's not like the build script is taking a long time, it's the invocation of DMD that takes 100% of that time. 36% slower seems highly optimistic? Perhaps you're building a debug build of DMD with a debug build of DMD? I guess that wouldn't be so slow... I suspect it's the optimiser that's very slow?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 just got to try a side-by-side comparison of a release and debug (as in `make -f posix.mak BUILD=debug`) build of DMD. With a 25KLOC project, the debug build is only 36% slower. Maybe the experience on Windows / Visual Studio is very different.
Nov 15 2018
On Thursday, 15 November 2018 at 19:18:27 UTC, Manu wrote:I'm not sure how VisualStudio (read: MSBuild) should behave differently than make? It's not like the build script is taking a long time, it's the invocation of DMD that takes 100% of that time.That seems to take about half the time for me (2 out of the 4 seconds).36% slower seems highly optimistic? Perhaps you're building a debug build of DMD with a debug build of DMD? I guess that wouldn't be so slow... I suspect it's the optimiser that's very slow?36% slower for compiling a real-life program with the built D compiler. The comparison is between a normal and debug build of DMD (used to build the program).
Nov 15 2018
On Thu, Nov 15, 2018 at 8:00 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 15 November 2018 at 19:18:27 UTC, Manu wrote:What was the batch size for module grouping? I wonder if batching too many modules together into a single compiler invocation makes too much data for the optimiser? Is optimisation time strictly linear with the size of the AST? Or is having more functions available for the inliner to consider increasingly expensive?I'm not sure how VisualStudio (read: MSBuild) should behave differently than make? It's not like the build script is taking a long time, it's the invocation of DMD that takes 100% of that time.That seems to take about half the time for me (2 out of the 4 seconds).36% slower seems highly optimistic? Perhaps you're building a debug build of DMD with a debug build of DMD? I guess that wouldn't be so slow... I suspect it's the optimiser that's very slow?36% slower for compiling a real-life program with the built D compiler. The comparison is between a normal and debug build of DMD (used to build the program).
Nov 16 2018
On Saturday, 17 November 2018 at 06:21:20 UTC, Manu wrote:What was the batch size for module grouping?I just use dmd -i, which compiles everything at once (except Phobos/Druntime).
Nov 17 2018
I just updated DMD on my windows and tried to compile hello world. It took 7.4 sec. Something is not right. Can anyone reproduce? On the same mashine running linux it compiles and runs in 0.1 sec PS C:\Users\Welkam\Desktop\Projects> Measure-Command {dmd -run main.d} Days : 0 Hours : 0 Minutes : 0 Seconds : 7 Milliseconds : 418 Ticks : 74184371 TotalDays : 8.58615405092593E-05 TotalHours : 0.00206067697222222 TotalMinutes : 0.123640618333333 TotalSeconds : 7.4184371 TotalMilliseconds : 7418.4371
Nov 17 2018
On 18/11/2018 1:29 AM, welkam wrote:I just updated DMD on my windows and tried to compile hello world. It took 7.4 sec. Something is not right. Can anyone reproduce? On the same mashine running linux it compiles and runs in 0.1 sec PS C:\Users\Welkam\Desktop\Projects> Measure-Command {dmd -run main.d} Days : 0 Hours : 0 Minutes : 0 Seconds : 7 Milliseconds : 418 Ticks : 74184371 TotalDays : 8.58615405092593E-05 TotalHours : 0.00206067697222222 TotalMinutes : 0.123640618333333 TotalSeconds : 7.4184371 TotalMilliseconds : 7418.4371Just in case, did you disable your anti-virus first?
Nov 17 2018
On Saturday, 17 November 2018 at 12:36:30 UTC, rikki cattermole wrote:Just in case, did you disable your anti-virus first?Had to edit registry to turn that thing off and it still some times popup. Microsoft is so annoying. https://imgur.com/a/x3cKjZm
Nov 17 2018
On Wed, Nov 7, 2018 at 10:10 PM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:100 seconds is a lot more than 4... 25x even, that's a pretty big productivity decline ;)...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 was definitely about 4 seconds not too long ago, a few years at most. It does seem to take more time now; I wonder why.
Nov 07 2018
On 11/7/2018 10:08 PM, Vladimir Panteleev wrote:It does seem to take more time now; I wonder why.That's easy. It's because nobody has profiled it for years. Another reason is the backend being in D now, it is being compiled with DMD rather than gcc/clang.
Nov 08 2018
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 puremagic.com> wrote: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[...]"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.
Nov 07 2018
On Wed, Nov 7, 2018 at 10:30 PM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:I'm on an i7 with 8 threads and plenty of ram... although threads are useless, since DMD only uses one ;)On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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[...]"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.
Nov 07 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 puremagic.com> wrote: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.On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:I'm on an i7 with 8 threads and plenty of ram... although threads are useless, since DMD only uses one ;)On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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[...]"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.
Nov 07 2018
On Wed, Nov 7, 2018 at 11:55 PM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On Thursday, 8 November 2018 at 07:41:58 UTC, Manu wrote:No, you're right, the backend builds in 2-3 seconds.On Wed, Nov 7, 2018 at 10:30 PM Joakim via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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.On Thursday, 8 November 2018 at 04:16:44 UTC, Manu wrote:I'm on an i7 with 8 threads and plenty of ram... although threads are useless, since DMD only uses one ;)On Tue, Nov 6, 2018 at 10:05 AM Vladimir Panteleev via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: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[...]"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.
Nov 07 2018
On 11/7/2018 11:41 PM, Manu wrote:I'm on an i7 with 8 threads and plenty of ram... although threads are useless, since DMD only uses one ;)So does every other compiler. To do a multicore build, you'll need to use a makefile that supports -j.
Nov 08 2018
On Thu, Nov 8, 2018 at 12:10 AM Walter Bright via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:On 11/7/2018 11:41 PM, Manu wrote:Right. So...? Also, MSBuild is what people use on Windows... but same applies.I'm on an i7 with 8 threads and plenty of ram... although threads are useless, since DMD only uses one ;)So does every other compiler. To do a multicore build, you'll need to use a makefile that supports -j.
Nov 08 2018
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 puremagic.com> wrote:Everything on Windows is slower. I'm 99% sure the fault lies with NTFS. I worked on a cross platform framework back in the day, nearly all of the code was identical between Linux and Windows. On the same dual-boot machine the build was between one and two orders of magnitude slower on Windows. Again: same code, same machine, no VMs. _Anything_ that used the filesystem was significantly slower, including CMake. It got to the point that the devs that preferred to use Windows only ever used the unity build because incremental ones were too slow to bear. I'd love to know how long it takes to build clang on your machine.This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful."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.
Nov 08 2018
On 2018-11-08 05:16, Manu wrote: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.This is my result on macOS: $ $ make -f posix.mak clean $ time make -f posix.mak -j 16 real 0m3.127s user 0m5.478s sys 0m1.686s -- /Jacob Carlborg
Nov 08 2018
On Thu, Nov 08, 2018 at 06:25:06PM +0100, Jacob Carlborg via Digitalmars-d-announce wrote:On 2018-11-08 05:16, Manu wrote:[...] Result on Debian/Linux (amd64): real 0m8.445s user 0m11.088s sys 0m1.453s Slower than C++ compilers?! That's impossible. There must be something wrong with your setup, or else with your OS. Dmd is easily one of the fastest compilers I've ever used, even after the noticeable slowdown when we started bootstrapping from D. G++, for example, is at least an order of magnitude slower. On my system, anyway. YMMV obviously. (Of course, it depends on what D features you use... template-heavy and CTFE-heavy code tends to slow it down pretty badly. But still, it's pretty fast compared to g++.) T -- Who told you to swim in Crocodile Lake without life insurance??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.This is my result on macOS: $ $ make -f posix.mak clean $ time make -f posix.mak -j 16 real 0m3.127s user 0m5.478s sys 0m1.686s
Nov 08 2018
On 2018-11-08 18:25, Jacob Carlborg wrote:This is my result on macOS: $ $ make -f posix.mak clean $ time make -f posix.mak -j 16 real 0m3.127s user 0m5.478s sys 0m1.686s21 seconds on a Windows 10 virtual machine compiling using the win32.mak file. -- /Jacob Carlborg
Nov 08 2018
On Thursday, 8 November 2018 at 19:07:32 UTC, Jacob Carlborg wrote:21 seconds on a Windows 10 virtual machine compiling using the win32.mak file.Sounds like we're narrowing it down to the Visual Studio solution.
Nov 08 2018
On Thursday, 8 November 2018 at 20:19:47 UTC, Vladimir Panteleev wrote:On Thursday, 8 November 2018 at 19:07:32 UTC, Jacob Carlborg wrote:Well, I'm just using win32.mak in a command prompt and it takes ~1m 40s to build DMD. It just seems to do nothing for most of that time.21 seconds on a Windows 10 virtual machine compiling using the win32.mak file.Sounds like we're narrowing it down to the Visual Studio solution.
Nov 08 2018
On Thursday, 8 November 2018 at 20:19:47 UTC, Vladimir Panteleev wrote:Sounds like we're narrowing it down to the Visual Studio solution.Mildly interested, I gave DMD master a shot with my 5-years old i5-3550 ( 4 GHz) in VS 2017 (+ a recent Visual D beta): DMD v2.083.0-beta1 host compiler --- Win32-Debug: 12 secs Win32-Release: 1m 58 secs LDC v1.13.0-beta1 host compiler --- Win32-Debug: 22 secs Win32-Release: 1m 28 secs DMD's `-inline` is known to be *slow*.
Nov 08 2018
On 09/11/2018 00:12, kinke wrote:On Thursday, 8 November 2018 at 20:19:47 UTC, Vladimir Panteleev wrote:Similar numbers for me too. Please note that the auto-tester shows similar values for release builds on all platforms, so I suspect very low numbers reported here are debug build timings.Sounds like we're narrowing it down to the Visual Studio solution.Mildly interested, I gave DMD master a shot with my 5-years old i5-3550 ( 4 GHz) in VS 2017 (+ a recent Visual D beta): DMD v2.083.0-beta1 host compiler --- Win32-Debug: 12 secs Win32-Release: 1m 58 secs LDC v1.13.0-beta1 host compiler --- Win32-Debug: 22 secs Win32-Release: 1m 28 secsDMD's `-inline` is known to be *slow*.Pedantically, it's not the inliner by itself, but the optimizer that cannot cope with large functions. With some improved inlining capabilities that got worse over time. Visual Studio only provides parallel compilation of projects out of the box, you have to add it yourself for your favorite language for parallelization within a project. Igor has done that for the msbuild integration of dmd and LDC (https://github.com/dlang/visuald/pull/94), but the PR has kind of stalled due to some undesirable side effects. Unfortunately, single file compilation is pretty slow, so there is not so much gain from switching from building per package to single file parallel compilation unless you have many cores.
Nov 08 2018
On Tuesday, 6 November 2018 at 18:00:22 UTC, Vladimir Panteleev wrote:This is a tool + article I wrote in February, but never got around to finishing / publishing until today. https://blog.thecybershadow.net/2018/02/07/dmdprof/ Hopefully someone will find it useful.I put a start to the project then today i remembered callgrind... What are the pros and cons in comparison with callgrind ? By coincidence i had to callgrind dmd today and got answers to a performance issue in a very straight forward way because for example: $ valgrind --tool=callgrind generated/debug/dmd somefile.d is very simple procedure and produce a file that's easy to interpret in kcachegrind (which can then also produce a graph in ps format). Note that i don't try to discredit your work, i'm just curious to know.
Nov 17 2018
On Saturday, 17 November 2018 at 23:01:23 UTC, Basile B. wrote:I put a start to the project then today i remembered callgrind... What are the pros and cons in comparison with callgrind ? By coincidence i had to callgrind dmd today and got answers to a performance issue in a very straight forward way because for example: $ valgrind --tool=callgrind generated/debug/dmd somefile.d is very simple procedure and produce a file that's easy to interpret in kcachegrind (which can then also produce a graph in ps format). Note that i don't try to discredit your work, i'm just curious to know.It sounds like you misunderstood the purpose of dmdprof. dmdprof will show you a profile graph of the source code *being compiled* (i.e. which parts take more time to compile and which parts cause other parts to get compiled), not of DMD source code.
Nov 17 2018
On Sunday, 18 November 2018 at 01:12:04 UTC, Vladimir Panteleev wrote:On Saturday, 17 November 2018 at 23:01:23 UTC, Basile B. wrote:Damn, you're right. Actually i didn't try your stuff at all and instead used callgrind intuitively. Bad advice was here: https://github.com/dlang/dmd/pull/8945#issuecomment-439388332. Also along the thread there was discussion about building DMD and one saying that DMD had not been profiled for ages.I put a start to the project then today i remembered callgrind... What are the pros and cons in comparison with callgrind ? By coincidence i had to callgrind dmd today and got answers to a performance issue in a very straight forward way because for example: $ valgrind --tool=callgrind generated/debug/dmd somefile.d is very simple procedure and produce a file that's easy to interpret in kcachegrind (which can then also produce a graph in ps format). Note that i don't try to discredit your work, i'm just curious to know.It sounds like you misunderstood the purpose of dmdprof. dmdprof will show you a profile graph of the source code *being compiled* (i.e. which parts take more time to compile and which parts cause other parts to get compiled), not of DMD source code.
Nov 17 2018
On Sunday, 18 November 2018 at 04:38:57 UTC, Basile B. wrote:Damn, you're right. Actually i didn't try your stuff at all and instead used callgrind intuitively. Bad advice was here: https://github.com/dlang/dmd/pull/8945#issuecomment-439388332. Also along the thread there was discussion about building DMD and one saying that DMD had not been profiled for ages.My bad.
Nov 18 2018