Measuring Swift Compile Times in Xcode 9
As mentioned, after you add these flags you will start getting warnings. Keep in mind that if the threshold is too low, for example 10ms, then you will get a ton of warnings that cannot be fixed. Experiment with these threshold values and adjust as needed. I suggesting starting at
200
and tuning from there. If your code base is large, it might make more sense to use a higher value for your project (say500
) and try to decrease it over time. Otherwise, you’ll be spending a lot of time trying to get all functions and expressions to compile in under 200ms. Also, I recommend setting these flags only forDEBUG
build configurations.There are two common scenarios where Xcode will start emitting warnings with these flags: (1) very complex expressions or functions, and (2) expressions that omit explicit types and rely on type inference. To silence the warnings — and thus improve compile times — try breaking up expressions into smaller steps with intermediate variables, and adding explicit types to variable declarations and closure parameters.
Previously: Guarding Against Long Swift Compiles.
Update (2018-04-29): See also: Marcin Krzyzanowski.