如何追踪编译速度慢的 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 秒。
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 秒。