"Denis Koroskin" <[email protected]> wrote in message news:op.vkshh4bdo7c...@korden-pc... > On Tue, 19 Oct 2010 00:41:54 +0400, Nick Sabalausky <[email protected]> wrote: > >> "Rainer Schuetze" <[email protected]> wrote in message >> news:[email protected]... >>> >>> I've used ddmd as a medium sized project for testing. It has more than >>> 400 >>> files with most modules mutually importing each other. Some remarks: >>> >>> - compilation speed is a lot worse, even when compared to what you would >>> expect from a similar C/C++ project. It takes almost 8 minutes to >>> compile >>> ddmd on my system with single file compilation, while the standard >>> compilation takes about 10 seconds. >>> >> >> Whaa...? Standard compilation of ddmd takes me a full two minutes. >> >> > > Do you compile the code on 486 or something? :)
Heh :) Compared to your and Rainer's systems it probably might as well be. > Running the build script takes 7.967 seconds for me (timed with timeit, > part of the Windows Server 2003 Resource Kit Tools). My guess is it may be the multi-threaded "process multiple modules in parallel" optimization. DDMD does have a *lot* of source files. And I'm on a single-core (yea, yea, I know, but it works for me and I have no money). I'm curious, is it possible for you or Rainer to time it running dmd in a "force single-core" mode? Ideally using the main system/OS core (if there even is one)? I would expect a normal out-of-the-box dmd would be noticably faster for you two just because of that multi-thread/core optimization and the cores themselves just simply being faster, but 120 sec vs 8 sec still seems an excessive difference. And then considering also, outside of dmd bugs, I've never once had any D program besides ddmd take more than a few seconds - despite the fact that much of what I do complie is fairly template/mixin/ctfe-heavy, and ddmd appears to use very little (if any) of that - it's certainly still a conceivable speed difference, but it does make me wonder if something else might be going on. BTW, anyone know of an easy way to check how much time in a process is spent waiting on disk IO? It's entirely possible that my disk is just fragmented all to hell.
