No way to turn off Link Time Code Generation (MSVC)?


#1

Link Time Code generation makes my time for a one line change go from a peppy 3 seconds to a crawling 37 seconds.

Now for those of you who are used to the older, slow computers who think that 37 seconds is quite fast - how do you think I feel when I’m used to running one line changes in 3 seconds and now I have to wait 37 seconds?

Where’s the setting in IntroJucer for turning off Link Time Code Generation for Visual Studio export targets? How did this get past everyone’s notice?


#2

AFAICS it’s disabled in a debug config, right?


#3

Yeah the Debug config does not have it.

I have to wonder how useful this option is now that all the source code for a module is passed to a compiler at once (instead of each small .cpp at a time).


#4

Seems like a reasonable thing to do in a release build. No reason not to optimise as much as possible, is there?


#5

I can’t run debug with all of the internal assertion checking and what not, and get low latency performance from the audio i/o callback with most of the effects and processing steps turned on, so I usually resort to running release 80% of the time.

When you’re used to a 3 second compile and link cycle, 40 seconds is like an eternity.


#6

A little OT: But this reminds me of a company I worked for, which had compile times of one hour for a one line change!
I found that really difficult to work with.
Shiver


#7

It’s really hard to imagine that anyone would put up with this for any length of time!


#8

This is still affecting me especially now that I have unchecked “Debugging enabled” for my Release build…


#9

What about adding a Release mode without this Link Time Code Generation? or adding a Debug mode without most of the assertions? Debugging without Debug mode (or at least never using it) sounds nonsense to me…


#10

Any progress on this?


#11

Sorry, very very low on my priority list.


#12

Since you’re doing stuff in Introjucer can we add a checkbox to the Visual Studio exporter settings?


#13

This is fixed