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

swift文件的输出编译持续时间,swift,xcode,compiler-optimization,compilation-time,Swift,Xcode,Compiler Optimization,Compilation Time,有没有办法在xcode构建期间输出编译swift文件所需的时间 我想从命令行编译以触发与构建xcode相同的编译,但要包括编译每个文件所需的时间 报告导航器显示每个文件的完整生成报告,但没有与之关联的时间范围 我想缩短Swift 1.2项目的编译时间,因为在清理后大约需要5-10分钟,或者在一个高度依赖的文件中更改源代码后需要3-5分钟。您可以添加 -Xfrontend-调试时间函数体 …指向Swift编译器-自定义标志部分(生成设置)中的其他Swift标志 注意:您必须保持这些标志的相同顺

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

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

报告导航器
显示每个文件的完整生成报告,但没有与之关联的时间范围

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

您可以添加

-Xfrontend-调试时间函数体
…指向Swift编译器-自定义标志部分(生成设置)中的其他Swift标志

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

然后可以在生成日志中获取编译时间:

当您确实希望优化编译时,这是非常有用的,而且在向大约较慢的编译时报告问题时,附加这种构建日志也是很好的

功劳归于错误的编译器黑客。目前是苹果公司(Swift,Clang)的工程经理,前身是微软公司(TypeScript,F#,JavaScript,.NET)。他在推特上发表了这篇文章,作为对罗布·里克斯关于分析Swift汇编的问题的回答。这让我很好奇,所以,我反汇编了编译器,检查了文本部分,找到了更多的标志。不要在生产代码中使用它们,只需使用它们


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

defaults write com.apple.dt.Xcode ShowBuildOperationDuration是
…重新启动Xcode,清理并生成,然后


如果我有豆荚呢?
为您的豆荚项目执行上述操作

谢谢。在扫描了大约5个类的编译日志之后,它变得很难管理。有没有办法输出每个文件的总时间?更新了我的答案,并说明了如何测量整个项目构建时间(不受支持的功能,可能会在将来的任何版本中中断)。检查是否有方法测量单个文件。要关闭该案例,没有开关或plist设置来输出每个文件的编译时间。或者我没有找到它。也许你可以用一些shell脚本包装swift[c]来度量它(没有尝试过)。Travis CI确实显示了每个文件的编译时间!我猜他们使用facebook的xbuild工具来使用这个:
xcodebuild-workspace App.xcworkspace-scheme App clean build OTHER_SWIFT_FLAGS=“-Xfrontend-debug time function body”| grep.[0-9]ms | grep-v^0.[0-9]ms | sort-nr>culprits.txt
(来源:)