如何追踪编译速度慢的 Swift 代码?

How to track down slow compiling Swift code?

Xcode 添加了一个很棒的功能,可以实时查看您的应用程序编译情况,但是您如何查看单个 类 的编译持续时间,然后进一步查看是什么代码导致了编译时间变慢?

This 很有帮助,但只是半途而废。

打开报告导航器(气球图标左窗格)。当你构建时,用构建锤点击最上面的行,你会看到每个编译文件的编译进度。

使用xctool。当您在命令行上编译项目时,它会将编译每个文件所花费的时间发送到控制台。例如:

✓ Compile MySwiftFile.swift (12067 ms)

此外,对于 Swift 1.2 至少有一个标志 debug-time-function 可以传递给 Swift 编译器以显示有问题的 函数 .

进一步讨论

Swift 现在包含一个逐个函数的编译器分析器。您可以使用编译器标志 -Xfrontend -debug-time-function-bodies.

启用它

运行 彻底重建并使用 this post 中的 grep 命令按函数获取编译时间的反向排序列表。

这对我很有帮助 - 通过调整最慢的编译函数,我的构建时间缩短了 15 秒。