Non Incremental build in CSharp + single threaded compiler

B

Brett.Shearer.AUS

I work on a reasonably large project (if yours is bigger, please tell
me just how big) and am wondering how other people are partitioning
their assemblies/dealing with slow build times?

Our masterfiles assembly (which contains essentially just reference
file business objects) is currently 6Mb in size, and changing one line
of code causes a complete recompile.

I noticed older versions of csc.exe supported the /incremental build
option.
Why would this have been removed? It seems like the perfect solution
to really slow builds.

Is there also any reason why the compiler is not multithreaded? I have
a quad core machine that is currently using a whopping 25% cpu
utilisation.............

I watched a video the other day espousing Vista's new features, and a
Microsoft engineer said that Intel would be releasing a 60 core
machine in the next 5 years.

Does this mean I will get a 1.5% cpu utilisation when compiling in 5
years time? Or will Orcas come to the rescue?
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

I work on a reasonably large project (if yours is bigger, please tell
me just how big) and am wondering how other people are partitioning
their assemblies/dealing with slow build times?

Our masterfiles assembly (which contains essentially just reference
file business objects) is currently 6Mb in size, and changing one line
of code causes a complete recompile.

Have you considered splitting it up ?
Is there also any reason why the compiler is not multithreaded? I have
a quad core machine that is currently using a whopping 25% cpu
utilisation.............

How is your disk ?

(compilers are often IO intensive)

Arne
 
N

Nicholas Paldino [.NET/C# MVP]

Brett,

I think that you bring up a greater question that software developers
are going to face in the future. Considering that processing power is not
going to increase in the form of faster processors, but rather, more
processors, programs will have to take this into consideration in order to
gain performance benefits.

As for why the incremental swich was taken out, I really can't say.

I also can't say if the C# compiler will be multi-threaded in the
future. However, if an MS engineer noted that Intel will be building chips
with 60 cores in five years, I would say that MS is aware of the point that
I brought up above, and that they will be coding in the future with that in
mind.

For the present, you might want to consider building sections of your
project into modules (using the /target:module switch) and then combining
them into one assembly using the assembly linker (al.exe).

Hope this helps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top