Can compiler profile itself?

Profile Anaysis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jan 24 15:25:12 PST 2017


I am trying to compile some code and it takes around 6 seconds. 
Even if I change one line in one module, it takes the same time. 
There are about 20 different d modules.

I used to get around 1-2 second compile times several months ago 
on different projects.

I did upgrade a few things and it seems that something has made 
things slow.

Can we ask the compiler what seems to be taking the most time(a 
module, a template, etc...)?

If the compiler can profile itself then it would be very easy to 
figure out what is slowing things down in compilation.

I feel that I should be able to compile all the modules 
separately and only have to recompile the module that I 
changed... and that it should be quite fast(e.g., if the module 
contains nothing but the main and a write statement, regardless 
of all the other stuff in the project, I'd expect that to be 
fast).

For example, If I do the

import std.stdio;

int main(string[] argv)
{
     writeln("Hello D-World!");
     return 0;
}

it takes <1s.

Yet if I import a bunch of modules it takes 6+s and the time 
never reduces on subsequent builds.

I am using Visual D.

Visual D has a separate compile and link feature but when I try 
it for dmdx64 I get

Internal error: backend\mscoffobj.c 2016

It does work for x32 but the speed does not change.

I'm convinved that dmd is recompiling everything each time... and 
this doesn't seem very fast IMO when less than 0.1% of the 
project has changed.









More information about the Digitalmars-d-learn mailing list