I'm sitting here reading JOS when I perhaps ought to be working because I'm running a build.
>It's a build on maybe a medium-sized project
Matt: I'm over at Atomic Object, in Eastown. I need a full build now because I'm not working on code but on the build system and need to see what comes out of it broken.
Are the sources local, or are they on a File Server aka Repository.
Here th. Ere (e-Very Where)
My system build takes about three hours. I wish it took an 45 Minutes. I am reworking the present build so it will not take as long (Per project management). I build both a Java component and a C++ component. Both components are around 2MLOC (The Java Component is Larger). It takes the Java part around 45 Minutes and two hours and 15 minutes for the C++ component. So java and C++ appear (under MS VSC++) are not linear.
A Software Build Guy
Boy, I don't miss C++ build times. :)
Brad Wilson (dotnetguy.techieswithcats.com)
I have ~40Mb source in 4000 files, and it takes less than 10 minutes on a _really_ old machine, (Visual C++ 6), to compile the whole thing. What's different? (could be it that this is made of many small sub-projects with relatively few interdependencies?)
This sounds like a dodgy plug, but I promise that I'm not related to the company in any way whatsoever. We recently discovered a product called 'Incredibuild'. I have to admit that I was put off by it's kind of crap name and dubious claims at first but we gave it a go and it really works! It's a Microsoft Visual C++ addin. The idea is that you get lots of people to install it and then it distributes the build work between each machine. It seems to work using some kind of virtual machine system, so you don't have to have the same configuration on each machine - in fact it says that you don't even have to have Visual Studio installed on all of the boxes. We had a few issues at first because the dependencies weren't quite set up properly in our workspaces but it is working excellently now - a clean build used to take just under an hour (on a 2.4GHz Pentium), but my last build took exactly 3 minutes and 12 seconds - needless to say, I love it! On the downside, it's pretty expensive, but I was surprised how easy it was to convince the bosses when I compared it to man hour costs.
Oops - I guess an URL would help... http://www.xoreax.com/main.htm
Big C++ project in VC 6 a while back, full build - 9 hours.
>> 45 minutes for 200 KLOC for VC++ sounds about right, for version 6. I dunno about .net ... <<
Our current build process takes around 2 hours (build machine is a bit elderly), but on my laptop (1.7Ghz 256Mb) it takes around an hour or so.
My current MSVC6 project is about 200,000 lines of code - takes about 18 minutes to build (both debug an release)...
As an earlier poster suggested, are you using pre-compiled headers? If not, you should be. You should have the includes organised to assist the include optimisation.
That should be componentise.
Its a while since I used QNX, but it isn't really comparable to a Visual C++ type build.
I was really suss about Incredibuild as well until we tried it.
It could be worse, I remember the good old days when a compile could take a day to get done, depending on the mainframe load.
Have you looked at a copy of "Large Scale C++ Program Design" by Lakos? It has a lot of tips on reducing build times. (e.g. reducing dependencies, eliminating redundant file reads, etc.)
"This sounds like a dodgy plug, but I promise that I'm not related to the company in any way whatsoever. We recently discovered a product called 'Incredibuild'. I have to admit that I was put off by it's kind of crap name and dubious claims at first but we gave it a go and it really works! "
>>> I have seen sooooo many spam emails start off this way....cant we keep these morons out of the forum?
Hey, I'm sorry - next time I won't bother.
ye gods.....spammer tag teams...
I don't know why I'm bothering with this, but it does offend me to when you call me a spammer (moron, I can accept ;). I'm actually a lead dev for a company that develops a product that has been slagged off a lot lately on this forum. I've kept out of the discussion as I have no objection to people slagging off our products - I'm sure that they have good reasons, and unless there's something specific that I can help with, I'm not going to join in the discussion - I don't want to offer a biased opinion. Funnily enough, I also thought about posting something about Incredibuild to the 'software that rocks my world'-type thread, but I didn't because I thought someone would probably get on their high horse about spamming. Don't get me wrong - I hate spamming too, but that doesn't mean that people shouldn't try to help others out by pointing out good stuff they've found. If I don't beleive them then that's fine, but I wouldn't reply and slag them off - just maybe they're telling the truth. If you want proof of who I am then just click on the mail link below and I'll mail you back from my work address, but I suspect that it's more likely that you'd rather assume I'm a liar.
OpenMosix. If your compiling on Linux etc, it makes a big difference (if you have a large pool of otherwise idle machines, e.g. workmates).
Fair enough (although I never normally like to publish identifying info on the web either). I work for Crystal Decisions - the makers of Crystal Reports. I don't actually work on Crystal Reports though - I work on the Crystal Analysis line of products ( http://www.crystaldecisions.com/products/crystalanalysispro/default.asp ). I used to work on the server side of their zero client - a DHTML interface that allows OLAP analysis with nothing more than a web browser installed, but now I'm working on a new product that isn't available yet.
No problem - I admit that my message did seem spam like, but I reckon that I've probably gained back at least an hour a day, so I do tend to rave about it. ;-)
I work on a 75K line application. It is very heavily templated C++, using a lot of STL, and a lot of non-templated STL.
Just checked. My current Delphi project of 236K lines of code fully builds in about 9 seconds. Not that I do a full build often. I generally hit the Run command, which compiles changes only, links and runs the application in less than 5 seconds.
Another vote for Incredibuild - what a fantastic bit of kit!
One way to improve the build times on VC++
I'm with Jan - I love Delphi compile times. I work on a set of smaller apps and I turn on "show compiler progress" because without the feedback it's so fast that I worry I might have missed the button or something :).
This is obvious stuff, but FWIW:
How odd, I was just speaking to a fellow developer (form another company) about build times. I forget the exact number, but his build was taking around 8 hours to complete.
Dear Full Name Required,
People should stop being assholes when others are trying to help, or people are going to stop helping.
Brad Wilson (dotnetguy.techieswithcats.com)
Rich genuinely works at crystaldecisions.com or at least can send mail from an address there, and I can't seem to find any link between him and xoreax.com which is registered in Israel, so I must accept that he is not a spammer; he merely gives a perfect imitiation of one :)
Even if "R1ch" did have some relationship with Incredibuild other than that of enthusiastic user (and I don't believe he does), what is wrong with him posting an on topic reply to a problem with build times?
"Could the difference be entirely due to templates and stuff, which we don't use?"
I'm working under Linux, and I've found ccache to be very helpful for our system - http://dp.samba.org/ccache/ . We obviously don't have the option of pre-compiled headers (which is too bad, as our code tends to include every header in the system!), and we have a massively irritating class heirarchy (including a lot of wierd templating, massive intertwining of classes, and darn near everything descending from a class named Object. Don't ask why - it makes my head hurt.). I used ccache to take us from a >2 hour full rebuild time down to about 25 minutes. I also used it (with a shared cache) to reduce rebuild times by sharing the cache (sort of a cheap version of what ClearCase could do). I don't know if there is any sane way to integrate ccache with VC++ (I suspect it would be hard, but perhaps possible), but as it's free, it might be worth looking at.
The code I'm working with uses things like templates and STL and includes Windows headers fairly frequently. I'm not seeing exhorbant build times (8 minutes, ~250k lines, relatively slow machine).
Just to toss more weight on the pile, we purchased a bunch of Incredibuild licenses around a year ago and I consider it some of the best money we could've ever spent. Fantastic investment.
I dropped'em like a bad habit, -- don't put build stuff on my resume any longer.
Fog Creek Home