Please try rdmd on large projects
Nick Sabalausky
a at a.a
Thu Mar 1 21:26:04 PST 2012
"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message
news:jhugqd$26v0$1 at digitalmars.com...
> Hello,
>
>
> I just submitted
> (https://github.com/D-Programming-Language/tools/commit/c77b870fdc5674d7434b03d1767ba831eaac25b1)
> a change to rdmd that runs one thread per stat when comparing file dates,
> using David's excellent std.parallelism.
>
> In my experiment the change introduces no additional lag on small projects
> and works 10-15% faster on moderate projects (couple dozen deps).
>
> Could someone try rdmd against some larger projects and assess its
> behavior and speed?
>
>
Finally got a change to try this. The projects probably aren't as big as
what you had in mind, but I tried:
rdmd 0124c6b61a VS rdmd 75f292fffd
Compiling:
- Compiling all of Goldie's targets with DMD 2.058
- Attempting to compile DDMD with DMD 2.053 (the build failed pretty
quickly, but not until after RDMD would DMD for the second time)
On:
- 32-bit single-core Linux, using a HDD
- 32-bit single-core Windows, using a HDD
- 64-bit dual-core Linux, using a USB Flash drive
On all combinations I got no difference between the two versions of RDMD
(which is good in the case of the single-core machines, of course). The once
slight exception was that compiling Goldie's targets on the 64-bit dual-core
machine was about 1-2% faster with the newer RDMD (75f292fffd) compared with
the older (0124c6b61a). Could just be noise, though.
There was one weird anomaly: When compiling the Goldie targets on the 64-bit
dual-core, I compiled all of Goldie 8 times with each of the two RDMDs. On
*ONE* of the compilations with the newer RDMD, one of the targets failed to
build with a DMD ICE:
dmd: ../ztc/aa.c:423: void AArray::rehash_x(aaA*, aaA**, size_t): Assertion
`0' failed.
I hadn't touched anything during or in-between compilations.
More information about the Digitalmars-d-announce
mailing list