【问题标题】:How to enable build timing in Xcode?如何在 Xcode 中启用构建时间?
【发布时间】:2010-11-04 21:40:15
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: xcode build timing


    【解决方案1】:

    在终端输入:

    defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
    

    持续时间在构建后显示在活动查看器中,旁边是“成功”消息。

    如果您正在运行应用程序,在您看到持续时间之前,状态将被运行状态替换。

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

    默认写com.apple.Xcode ShowBuildOperationDuration YES

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

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

    【讨论】:

    • 这也适用于 Xcode 6。构建时间显示在窗口标题栏下方。
    • @bobobobo Xcode 6.1.1 中时间出现的截图 i.imgur.com/6KkYdls.png">
    • 有什么方法可以将它打印到文件中?
    • 确认这在 Xcode 7.1.1 中适用于我(使用较新的 com.apple.dt.Xcode
    • 如果其他人想知道活动查看器是 xcode 中间顶部的窗口,它显示当前正在构建的内容以及进程的进度。
    【解决方案2】:

    在 Xcode 10 中,您现在可以使用 Timing Summary 功能查看构建时间的详细分类。

    产品->执行操作->使用时序摘要构建

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

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

    Build Logs within Report Navigator

    【讨论】:

    • 我无法从 XCode 中保存构建日志和计时。我只能在 XCode 输出中看到时间
    【解决方案3】:

    不,但您可以使用命令行。 cd 到你的项目目录并输入

    time xcodebuild
    

    【讨论】:

      【解决方案4】:

      我在Build Phases 中用Run Scripts 解决了这个问题

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

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

      最后一个:

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

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

      【讨论】:

      • 在 Xcode 6.4 中,它不允许您在任何“库存”构建阶段之前拖动运行脚本构建阶段。如果您创建了一堆额外的构建阶段,它会让您在它们之间重新排序,但似乎所有“库存”构建阶段都必须先出现。你找到解决办法了吗?
      【解决方案5】:

      Xcode 10 之后

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

      【讨论】:

      • 现在正确的命令行参数是-showBuildTimingSummary
      猜你喜欢
      • 2010-12-01
      • 1970-01-01
      • 2017-12-15
      • 2017-03-17
      • 1970-01-01
      • 2022-10-07
      • 2017-06-04
      • 1970-01-01
      相关资源
      最近更新 更多