我正在尝试为我的项目生成Xcode构建摘要,以便可以优化瓶颈。按照所附的屏幕截图
在底部显示的总构建时间为135.3秒。而第一个模块CompileC需要449.356秒。我知道Xcode在构建项目时会进行一些并行化,但是我不确定它是如何计算此摘要时间的。谁能解释一下?
答案 0 :(得分:4)
我知道这很旧了,但是我一直在研究,我碰到了Apple Xcode构建系统工程师Rick Ballard的评论。
是的-许多命令(尤其是编译命令)能够彼此并行运行,因此,多核计算机的完成构建确实比运行每个命令所花费的时间快得多。
换句话说,除了最后一个数字,引用的数字是核心秒,不是实时的。因此,如果您有六个核心,则CompileC任务可能只需要449/6 = 75秒。您可能需要660核心秒,因此您将获得大约110个时钟秒,这看起来不错,而总时间为135。
答案 1 :(得分:0)
默认情况下,上面的详细界面会隐藏很多编译信息,可以通过单击每个任务来展开这些信息。
它主要分为Target compilation
和main project compilation
。
目标编译:
1,编写辅助文件
2,编译.m文件
3,编译XXX -dummy.m文件
4,创建静态库
5,复制头文件
6,复制资源文件(如果有)
主要项目编译:
1,写辅助文件
2,产品包装过程
3,执行cocoapods资源复制脚本
4,编译.m文件
5,链接的静态库
6,编译资源文件
7,过程信息。 plist文件
8,执行cocoapods资源复制脚本
9,创建应用
10,包装和签名
如果要提高编译速度,首先需要对代码结构进行一些优化,以避免重复的参考库和参考库文件太大。其次,您可以使用一些工具进行优化,例如cocoapods-packager,Carthage,Buck,Bazel,distcc分布式编译或CCache(推荐)。