为大型游戏项目缩短XCode 4.5的构建时间

Raj*_*yan 12 compiler-construction xcode compilation compiler-optimization xcode4.5

场景: 我们有一个iOS游戏的XCode项目,它有大约7000多个文件.

只有1000多个文件是代码.其余的是图像,声音,关卡数据,XIB,plists,配置文件等.

它是一个通用的应用程序,因此,我们为旧的iPhone,视网膜iPhone,iPad等提供单独的资源.我们还有一些PNG和PVRTC用于BG图像等少数事情,以充分利用不同的硬件.

问题:

现在该项目需要

42秒清洁(Cmd - Shift - K)

完全重建的时间为8.3分钟(Cmd - B)(重建时,进度条的一半在1分钟内完成)

aaaand ... 5分钟36只跑步(Cmd - R)??

在那之后,我按下"停止"并再次单击"运行"而不做任何其他事情.它花了2分钟40秒,只是"再次运行"

我还看到资源再次被复制,一些文件再次构建,如进度条上方的XCode所示.

任何减少任何这些阶段的时间的解决方案都受到高度赞赏.请 ?

PS该项目是在XCode 3天期间启动的,每次新的XCode出现时我们都会自动更新xcodeproj文件.

Ger*_*.ch 7

您正在寻找的是改进调试的编译和启动时间,对吧?那么为每个平台创建不同的目标呢?因此,您保留相同的代码,但仅根据您的调试设备打包一部分资源用于调试目的.

要执行此操作,请继续执行您的实际目标,右键单击并复制.保持你的实际目标不变,这是最胖的!对于新目标,让我们说它是iPad视网膜,转到"构建阶段" - >"复制捆绑资源"并删除与iPad Retina无关的所有资源.为每个平台做同样的事情.

然后在Xcode的左上角,选择特定设备的良好目标.也许,您可以定义目标接受哪个设备.

如果你使用持续集成,让你的构建机器在晚上编译胖目标.


Mec*_*cki 6

如果问题的原因未知,则无法解决问题."我的车不再启动,有没有办法让它重新开始?"; 最有可能,但只有当它拒绝开始的原因是已知的.听起来有点像你希望Xcode中有一个名为"Build fast"的魔术开关,通过启用它,一切都变得更快.如果有这样的开关,你不认为它会默认启用吗?难道你不认为它实际上会一直启用吗?

我也想知道你为什么用"编译器"和"编译器优化"来标记这个问题.根据您自己的说法,编译只需要8.3分钟构建时间的一分钟,那么如何进一步减少编译时间使整个过程更快?即使编译时间减少到零,这仍然会给你7.3分钟的构建时间.不要在错误的一端进行优化.

这就像优化代码一样.如果您的代码太慢,那么如果您的代码中的大部分时间都花在了代码中,那么所有优化都是毫无意义的.如果只有0.1%的时间花在这段代码上,那么优化一段代码以快十倍的速度运行将无法实现整体性能.代码优化的第一步是分析代码并找出在代码片段上花费了多少时间.

因此,为了使您的构建过程更快,第一步也是最重要的一步是找出为什么现在构建时间很慢.没有这些知识,人们在这里给出的所有答案都只是在猜测.一旦你确切地知道问题的确切位置,你就可以回过头来确切地问如何更快地迈出这一步.首先是优化最慢的步骤,然后是第二慢的步骤,依此类推.

看看Xcode中的构建日志

在此输入图像描述

确保选择"所有消息",否则您将只看到警告和错误,或仅查看错误.现在开始一个干净的构建,选择弹出到左侧的新日志并继续监视此日志.您将确切地看到Xcode何时开始操作以及何时接近下一个操作.这应该给你第一印象,哪些任务需要很长时间才能完成.一旦你告诉我们这些任务是什么,我们就可以开始建议你如何能够更快地完成这项任务.

  • -1.最后两段是有用的,其余的段落对我来说是粗鲁和有意义的. (2认同)
  • @TarkaDaal是的,如果我刚刚结束这个问题,那当然就不那么粗鲁了,就像大多数人如果问题没有包含足够的信息甚至可以解决那样.我宁愿教育人们在将来提出好问题,因为这将有助于他们获得更好的答案并更快地获得答案.OP并不认为这很粗鲁,我认为你的评论非常粗鲁. (2认同)