4

I have a project and made a clean build 3 times with VS and IncrediBuild

Setup of IncrediBuild: 2 machines are compiling at once, both have around of the same performance

  1. VS compiler

    • Compile Time: ~10min
    • Linking: ~3-4min
  2. IncrediBuild

    • Compile Time: ~4-5min (=> as expected, approx. half time)
    • Linking: ~10min (=> unexpected, should be approx. the same time)

This is reproduceable over a few builds (I made 3 clean builds). I know, IncrediBuild can't parallelise the linking of one project, but why is linking slower with IncrediBuild compared to VS linking?

My tests show me, that I don't have any benefit using IncrediBuild and I was thinking of using a few machines to build my project to increase build speed, but if linking is that slow (and so much slower), even using 10 machines would not be a benefit for me and would not be worth the money because linking time is destroying any benefit I get from improved compile time.

I'm working in a big company and buying CPU power is cheap and no problem, but IncrediBuild costs money as well and currently it would not be worth it. Any ideas what I could try or what I could be doing wrong? I've just installed IncrediBuild and use it with default settings.

Setup

  • Visual Studio 2017
  • Windows 10 machine (agent) and Windows 7 machine (coordinator)
  • 1GBit business network
  • IncrediBuild 9.0.1
prom85
  • 16,896
  • 17
  • 122
  • 242
  • Maybe have you enabled link time optimization? – Oliv Dec 21 '17 at 12:01
  • I've enabled incremental linking but no optimisations (no `\LTCG` or similar) – prom85 Dec 21 '17 at 12:44
  • In this answer https://stackoverflow.com/questions/3349521/what-is-incremental-linking, it is said that incremental linking increase linking time. Maybe incredibuild do not perform incremental linking, which would explain that MSVC has better linking time. – Oliv Dec 21 '17 at 12:49
  • This (https://www.incredibuild.com/webhelp/#advanced_incredilink.html) says, you can enable this feature for VS before 2008, so assume it's working for newer versions? Can't find this explicitly stated though... – prom85 Dec 21 '17 at 12:55
  • I don't know anything about incredibuild, but it is writtent "VS 2008 and earlier". I could not say I know MSVC too. The fact that you mentionned incremental linking (first time I heard about this) may be the sign that you actualy unconsciously knew the answer. – Oliv Dec 21 '17 at 13:03
  • It may be this. But imho it does not make sense to take out this feature on newer versions as it makes a big difference in build times and is suggested a lot when searching for increasing link speed – prom85 Dec 21 '17 at 13:05
  • Try it with IncrediBuild logging disabled. – Sergei Krivonos Aug 13 '19 at 09:14

1 Answers1

1

You shouldn't expect this difference in link time when using IncrediBuild.

I would recommend trying the following:

  1. Make sure you are using the Visual Studio 2017 /Debug:FASTLINK option.

  2. If the above didn't help, see if restricting the number of PDB files IncrediBuild uses can help. Right click the IncrediBuild tray icon-> Agent Settings -> Visual Studio Builds -> Advanced, and set the "Limit concurrent PDB file instances" to 12 or below.

  3. Try to temporarily disable any anti-virus software you have installed on your machine.

If these tips don't help, we'd highly appreciate if you could contact us at support@incredibuild.com so we can understand what's wrong in your environment and post a solution for the community.

Disclaimer, the write works at IncrediBuild.

CJBS
  • 15,147
  • 6
  • 86
  • 135
Dori
  • 470
  • 2
  • 6