swift 个文件的输出编译持续时间

Output compile durations for swift files

有没有办法在 xcode 构建期间输出编译 swift 文件所花费的时间?

我想从命令行编译以触发相同的构建 xcode 但要包括编译每个文件所花费的时间。

Report Navigator 显示每个文件的完整构建报告,但没有与之关联的时间范围。

我想缩短 Swift 1.2 项目的编译时间,因为它在清理后大约需要 5 - 10 分钟,或者在高度依赖的文件中更改源代码后需要 3 -5 分钟。

您可以添加……

-Xfrontend -debug-time-function-bodies

…到 Swift 编译器中的其他 Swift 标志 - 自定义标志 部分(构建设置)。

注意:您必须保持这些标志的相同顺序。 -Xfrontend 表示下一个标志应该传递给前端。如果您颠倒顺序,它将不起作用。

然后您可以在构建日志中获取编译时间:

这在您确实想要优化编译时间时很有用,而且在向 Apple Swift guys 报告有关编译时间缓慢的问题时附上此类构建日志也很好。

归功于 Joe Pamer Errant compiler hacker. Currently an engineering manager at Apple (Swift, Clang), formerly at Microsoft (TypeScript, F#, JavaScript, .NET). He tweeted it as a response to Rob Rix question about profiling Swift compilation. It made me curious, so, I disassembled compiler, checked text section for more flags and found other hidden options。不要在生产代码中使用它们,只是使用它们。


整个项目的构建时间。 运行 在终端中执行以下命令…

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

…重新启动 Xcode,清理并构建…


如果我有 pods 怎么办?

对您的 pods 项目执行与上述相同的操作