如何在Xcode中启用构建计时?


90

我想知道我的项目的构建需要多长时间,例如通过在构建窗格中显示它。这个选项在Xcode中可用吗?

谢谢。

Answers:


178

在终端中输入:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

生成后,持续时间将显示在活动查看器中,同时显示“成功”消息。

如果您正在运行该应用程序,则状态将被运行状态替换,然后才能看到持续时间。

这将替换旧版本Xcode中使用的条目:

默认写com.apple.Xcode ShowBuildOperationDuration是

输入此命令之前,可能需要关闭Xcode。持续时间应显示在项目窗口的左下方。

Xcode开发人员的评论:“与所有未记录的用户默认设置一样,该设置不受支持,假定(但不能保证)准确,并且不能保证在将来的版本中有效。”


7
这也适用于Xcode 6。生成时间显示在窗口标题栏下方。
克拉斯

6
@bobobobo时间在Xcode 6.1.1中出现的时间的屏幕快照<img src =“ i.imgur.com/6KkYdls.png ”>
chunkyguy 2015年

2
有什么方法可以将其打印到文件中吗?
AlexBartiş15年

1
在Xcode 7.1.1(使用较新版本com.apple.dt.Xcode)中确认这对我有效
-Jedidja

1
如果还有其他人想知道活动查看器,则它是xcode中间顶部的窗口,其中显示了当前正在构建的内容以及该过程的进度。
Warpzit '16


13

现在,在Xcode 10中,您可以使用其“时序摘要”功能来查看构建时间的详细信息。

产品->执行操作->使用时间汇总进行构建

这将显示您的每个目标构建时间以及整个项目的构建时间。您可以使用这些数据进行很多分析,并且构建时间将取决于您的硬件。如果您想了解更多信息,请查看WWDC 2018 中的Xcode更快构建

但是,默认情况下,Xcode会跟踪您的所有构建,您可以转到其报告导航器来检查其时间和日志。

在报表浏览器中生成日志


我无法通过时序保存XCode的构建日志。我只能在XCode输出中看到时间
msk

3

我用Run Scripts 解决了Build Phases

我在构建的起点添加了一个运行脚本:

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

最后一个:

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

现在我可以在Build Log-> All Messages中看到时间


1
在Xcode 6.4中,它不允许您在任何“常规”构建阶段之前拖动运行脚本构建阶段。如果您创建了许多其他的构建阶段,则可以重新排序它们之间的顺序,但是似乎所有“库存”构建阶段都必须排在第一位。您找到解决方法了吗?
Jason Pepas 2015年

0

Xcode 10之后

  • 如果从命令行进行构建,请使用-buildWithTimingSummary来查看构建时间摘要。
xcodebuild -buildWithTimingSummary
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
  • 如果您使用Xcode,则Product->Perform Action->Build With Timing Summary。并在Xcode构建日志中查看构建时间摘要。

如今,正确的命令行参数是-showBuildTimingSummary
Morse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.