2

We're working on pretty large middleware software, and it takes 10-20 minutes each time we need to re-build the whole solution in VS2008 (quad-core parallel build on a single machine). I've heard there are rather expensive VS extensions like Incredibuild that make use of other machines in your network (we have about 10 machines). Have you ever used or heard about those tools? Do they make the build process so faster and smarter to be worth the money? (e.g. re-use object files that could be cached on different machines)

Thanks in advance

Dave
  • 23
  • 1
  • 3
  • A company I worked for used Incredibuild for Visual C++ 6 about 10 years ago, and there it did improve the build times significantly, but I haven't used it since. I'd suggest downloading the trial and trying it out since that way you would know for sure if it would work for your code base. – Hans Olsson May 10 '11 at 08:00

3 Answers3

5

Well we had similar problems except that in our case it took over 40 minutes to build.

With Visual Studio 2008 we used Xoreax Incredibuild ( see Xoreax web site ) and it dramatically reduced the build time (i.e. to half the time or better). So I would say yes, such a tool can help. And, in my opinion it is not so expensive (i.e. between 250 and 500 USD per seat depending on extra options and there are some discounts for volume purchases).

Now we are at VS 2010 and at the time we upgraded there was no support for 2010 in Incredibuild so we rely on the VS2010 build. All developers have quad cores and the build in VS 2010 makes good use of that so the build times are acceptable. We also reviewed and improved our includes and made better use of precompiled headers and so on.

So you coud try Xoreax Incredibuild (they have a fully functional 30 days trial version that can be extended when it expires) to be able to determine if the price / benefit ratio is ok for your case, or revise and improve your includes and/or upgrade to VS2010 if you have multi core machines.

ds27680
  • 1,993
  • 10
  • 11
  • Reducing the build time to the half is something, but I'm now a tad disappointed with this figure. I was hoping their caching method saves a great deal of recompilation time. I'm going to use the trial version anyways. -Thanks – Dave May 10 '11 at 08:55
  • It takes build times for our application from 15 minutes down to 2-3 minutes. Much better than 2x - it just depends upon how much time you spend in the linking step. – Will Bickford May 18 '11 at 14:07
2

Agree with previous answer. We had similar experiences; build times do go down quite significantly. We first went with the simple Incredibuild setup; using spare capacity on other machines. The benefits were clear, but we recognized we could get even quicker builds by adding a dedicated build server (we do have far more developers, though - more than 100 clients - so YMMV)

As for the costs, it's quite likely that Incredibuild will increase your developer productivity by at least 1%.

MSalters
  • 173,980
  • 10
  • 155
  • 350
  • I'm going to guess the dedicated server takes care of linking, right? Or does it distribute the linking (as opposed to compiling) over the network too? I hope the improvement is more than 1% for our rather small team anyways. – Dave May 10 '11 at 09:01
  • 1
    The server was there mainly to add a lot of RAM and CPU to the build network. Linking was not distributed (might be today - check the trial), which limited our speedups. As for the 1% productivity increase, well you've got to realize that developers typically spend less than 5% of their time compiling in the first place. – MSalters May 10 '11 at 09:11
0

Microsoft now has BuildXL, but you have to separately build the project file for it.

FastBuild is another option, but again, separate project format. msfastbuild can build Visual Studio projects with FastBuild, but... you have to adjust it for your build-chain.

Still at trying to get one of them running...

relascope
  • 4,399
  • 4
  • 22
  • 27