On the performance of building D programs
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sat Apr 6 17:23:05 PDT 2013
On 4/6/13 1:14 PM, Andrej Mitrovic wrote:
> On 4/5/13, Vladimir Panteleev<vladimir at thecybershadow.net> wrote:
>> I noticed that compiling D programs in the usual manner (rdmd) is
>> as much as 40% slower than it can be.
>
> I've implemented the -rb and -rx switchex (the -r switch itself is
> taken, it's an undocumented switch). These switches are used to enable
> recursive builds and to exclude modules/packages, respectively[1]. The
> -rx switch can take a module name or a wildcard option, e.g. -rxfoo.*
> to exclude all modules from the package "foo".
>
> I'm seeing about 30% faster clean builds when using DMD with this
> feature compared to using RDMD. But I've only tested this on smaller
> projects, I wonder what the impact is on larger projects.
>
> The std and core packages, and the object module are implicitly
> excluded from building.
>
> [1] : https://github.com/AndrejMitrovic/dmd/tree/BuildRecurse
This is a dramatic improvement, and better build times are always well
received. Do you plan to convert your work into a pull request?
For larger projects I wonder if it's possible to restrict scanning only
to specific directories. That way building becomes a modularity enforcer.
Andrei
More information about the Digitalmars-d
mailing list