473,756 Members | 2,900 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Non Incremental build in CSharp + single threaded compiler

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?

Mar 16 '07 #1
2 2012
Br************* **@gmail.com wrote:
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
Mar 16 '07 #2
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.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

<Br************ ***@gmail.comwr ote in message
news:11******** **************@ n59g2000hsh.goo glegroups.com.. .
>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?

Mar 19 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
1924
by: Thorsten Ottosen | last post by:
Dear all, I work on a major system written in C# in visual studio 2003. Our solution has 10+ projects and all projects are compiled with /incremental. In a C++ world, non-incremental builds aren't used for development...it would simply take too long to compile an update. So we would naturally expect that incremental
0
1674
by: Rudy Ray Moore | last post by:
I've been having trouble getting incremental linking to work under Visual C++ .net 2003 7.1 for my multi-project workspace. Ronald Laeremans and Carl Daniel (and a few others) helped me figure it out. Short answer: I should never have expected incremental linking to work. Short answer addendum: Linking is slower in 7.1/.net/2003 than VC++6. ===
3
2272
by: Alex Shturm | last post by:
Hi, I am trying to activate incremental link using VC7 (.NET 2003) on a pretty big project (executable size is more than 100Mb, and it gets linked from several dozen of libraries and object files of different sizes - from less than 1Mb to tens of MBs). The problem is that option /incremental:yes does not have any effect on the link time. I observe that the linker removes existing executable and re-links it from scratch.
6
4475
by: rh | last post by:
Hi, I'd like to add an incremental search to my windows form DataGrid that works like the one used in Windows Explorer. In Windows Explorer, when you type a character it jumps to the first item that matches that character. If you type another letter within a given amount of time it will be part of the same search so that it will match the first 2 characters and so on. If you wait long enough and then type another character, it will treat...
10
2636
by: Brian Parker | last post by:
I inherited a C++ DLL that I need to remotely call multiple times asynchronously. What I have developed is: CSharp web application that makes asynchronous calls to a CSharp Web Service. The Web Service calls the DLL, which does some heavy processing, then sends the results back to the CSharp web application. The problem is that the calls to the DLL in the Web Service are blocking each other. If I send 10 async requests to the Web...
0
1772
by: miles1000 | last post by:
Hello, I've noticed \INCREMENTAL build option has been removed in .NET 2005. I want to make an incremental build for my solution. My solution includes projects written in c#, some of the projects have references to other projects. When I make a little change in one project I don't want all my solution to be rebuilded again - only the necessary projects (This is the reason I have referenced the projects and not the dll files). When I...
1
22088
yabansu
by: yabansu | last post by:
Hi all, I implemented a basic client application. It communicates with server and works properly. Building processes succeed just by giving the following warning: LINK : D:\DOC\Visual Studio 2005\Projects\Client01\Debug/Client01.exe not found or not built by the last incremental link; performing full link This warning occurs when building/rebuilding the project after cleaning the intermediate and output files. If the project is once...
8
2489
by: Bern McCarty | last post by:
We have a large mixed dll that I can never seem to get to link incrementally. Below is the console output. For simplicity I've eliminated some stuff that we normally do when we really link this dll like manifest embedding and strong name delay signing. Can anyone see anything wrong with my link command? Or offer some other explanation why I can never get an incremental link out of it? To test, I'm just touching one of the source files so...
35
3050
by: mwelsh1118 | last post by:
Why doesn't C# allow incremental compilation like Java? Specifically, in Java I can compile single .java files in isolation. The resulting individual .class files can be grouped into .jar files. In C#, there appears to be no analog. I have to compile all my .cs files into a single .dll. This has serious drawbacks in terms of compilation. With Eclipse, I change a file and only that file is re-compiled. With Visual Studio, I
0
9456
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9275
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10034
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9872
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9713
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6534
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5304
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3805
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3358
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.