我们可以使用-debug-time-function-bodies标识来查看Swift中每个函数/方法的编译时间。添加方式与-warn-long-expression-type-checking一样,在Other Swift Flags添加中-Xfrontend -debug-time-function-bodies

这样,我们就可以在Report navigator的编译日志里面看到。

另外,如果是用xcodebuild命令行,则可以如下将日志格式化输出到文本文件:

xcodebuild -workspace App.xcworkspace -scheme App clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep .[0-9]ms | grep -v ^0.[0-9]ms | sort -nr > log.txt

知道每个函数/方法的编译时间后,就可以有针对性的做优化了。

参考

  1. Profiling your Swift compilation times