如何使用Xcode分析和优化C++编译时间?
我目前正在做一个基于250+源文件的Cocos2d-x的C++游戏项目。编译时间(没有Cocos2d-x)目前大约是3.5分钟,我想找出编译器花费时间最多的地方,以及我可以做些什么来优化这一点。
我已经做了最明显的事情,比如总是做向前声明,并应用“包含您使用的内容”范例。
该编译器是Xcode8最新的Clang/LLVM。
发布于 2016-10-19 19:27:04
尝试创建目录/tmp/xcode_build_timings
,然后重新构建您的项目。(别忘了之后把它删除)。
发布于 2016-10-17 21:00:37
您可以随时尝试ccache。如果我在项目设置中重新定义了CC
,那么我可以在Xcode中很好地工作。https://ccache.samba.org/
因此,例如,通过brew install ccache
安装ccache。然后创建一个脚本,保存在项目的源代码控制中,如下所示:
#!/bin/sh
if type -p /usr/local/bin/ccache >/dev/null 2>&1; then
export CCACHE_CPP2=true
exec /usr/local/bin/ccache "${DEVELOPER_DIR}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" "$@"
else
exec "${DEVELOPER_DIR}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" "$@"
fi
例如,将其称为"ccache-clang“。将此脚本存储在项目的源代码管理中意味着您可以在没有安装ccache的另一台计算机上签出它,然后它将只使用默认的Clang编译器。
然后在Xcode中,在项目的Build Settings下,添加一个"User Defined“设置"CC",并将其设置为您的脚本的路径。例如,"${PROJECT_DIR}/ccache-clang
“。
这篇文章是一个很好的资源,可以帮助你实现这个目标。https://pspdfkit.com/blog/2015/ccache-for-fun-and-profit/
https://stackoverflow.com/questions/40095189
复制