How to enable build timing in Xcode?

XcodeBuildTiming

Xcode Problem Overview


I'd like to know how long my project's builds take, for example by displaying it in the build pane. Is this option available somewhere in Xcode?

Thanks.

Xcode Solutions


Solution 1 - Xcode

Type this in the terminal:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

Duration appears in the activity viewer after a build, alongside the "Succeeded" message.

If you are running the app, the status will be replaced by the running status before you can see the duration.

This replaces the entry that was used in older versions of Xcode:

> defaults write com.apple.Xcode ShowBuildOperationDuration YES

Xcode may need to be closed before you enter this command. Durations should appear at the bottom left of the project window.

Comment from an Xcode developer: "As with all undocumented user defaults, this is unsupported, assumed (but not guaranteed) accurate, and not assured to be effective in future versions."

Solution 2 - Xcode

In Xcode 10, you are now able to see a great breakdown of the build times using their Timing Summary feature.

Product->Perform Action->Build With Timing Summary

This will show each of your target build times and the overall project build time. You can do a lot of analysis using this data and build times will depend on your hardware. Check out [Building Faster in Xcode][1] from WWDC 2018 if you care to learn more.

However, Xcode keeps track of all your builds by default and you can examine their times and logs by going to their Report Navigator.

[Build Logs within Report Navigator][2]

[1]: https://developer.apple.com/videos/play/wwdc2018/408/ "Building Faster With Xcode 10" [2]: https://i.stack.imgur.com/V2G7K.png

Solution 3 - Xcode

no, but you could use the command line. cd to your project directory and type

time xcodebuild

Solution 4 - Xcode

I solved it with Run Scripts in Build Phases

I have added one Run Script at start point of the build:

echo $(date +%s) > ../build_start_time

and one at the end:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

Now i can see the time in Build Log -> All Messages

Solution 5 - Xcode

After Xcode 10

  • if you build from command-line, use -showBuildTimingSummary to see the build time summary.
xcodebuild -showBuildTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • If you use Xcode, Product->Perform Action->Build With Timing Summary. And see building time summary in the Xcode building log.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGuillaumeView Question on Stackoverflow
Solution 1 - XcodeGuillaumeView Answer on Stackoverflow
Solution 2 - XcodeAndrewView Answer on Stackoverflow
Solution 3 - XcodeNikolai RuheView Answer on Stackoverflow
Solution 4 - XcodeadsurbumView Answer on Stackoverflow
Solution 5 - XcodeRY_ ZhengView Answer on Stackoverflow