×

ccache让Xcode编译速度大大提高

消耗积分:1 | 格式:rar | 大小:0.05 MB | 2017-09-25

分享资料个

  [iOS]ccache 让你的编译时间飞起来2017-05-31 11:36程序设计/iOS  

  原文地址:Using ccache for Fun and Profit

  作者 Peter Steinberger

  我们的 PSPDFKit 项目超过 60 万行代码,并且代码量还在增长。尽管我们致力于写简洁而高效的代码,但是这个项目很大,而且有许多边界情况需要尤其注意。在 PSPDFKit 5 for iOS项目上,编译时间尤其成为一个令人头痛的问题:每次编译都很慢。

  我们的安卓 SDK 也有同样的问题,几个月前我们的安卓负责人在技术栈中引入了 ccache 来处理冗长的 C++ NDK 编译时间,我也是从那个时候开始接触 ccache。

  ccache 是个啥?

  ccache是一个编译缓存器,它会在实际编译之前先检查缓存。它有直接和预处理模式,而且由于在 Clang 3.2 版本之前是不支持 ccache 插件,所以在 Clang 3.2 之前会有一些问题,但是现在 Clang 的版本是 3.2.3,所以没有 Clang 不支持的问题。ccache 是一个具有悠久历史的项目,其主要焦点是快速正确。

  网上搜到“ccache xcode”的信息都是过时无效的信息,经过我快速的尝试网上的方法,都无法配置好使其正常工作。随着我们的代码库越来越复杂,同时我们的 Jenkins 工作集群数也有 10 台 Mac,现在测试时间从几乎无法忍受变成了正真无法忍受。在 Twitter 抱怨现在每天的工作就是管理 Jenkins 工作集群之后,Facebook 的 Christian Legnitto(他之前在 Apple 负责 OS X 版本管理工作)建议我们尝试 ccache。

  Let’s get started

  使用以下命令安装 ccache :

  brew install ccache

  如果你没安装 Homebrew,请移步这里,先去安装 Homebrew,如果你不想移步,就直接使用以下命令安装 Homebrew:

  /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  为了让 Xcode 调用 ccache,我们需要一个小脚本来配置一些环境变量,然后再调用 ccache。将这个脚本保存到您项目的某个地方,并将其命名为 ccache-clang。

  #!/bin/sh

  if type -p ccache 》/dev/null 2》&1; then

  export CCACHE_MAXSIZE=10G

  export CCACHE_CPP2=true

  export CCACHE_HARDLINK=true

  export

  CCACHE_SLOPPINESS=file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches

  exec ccache /usr/bin/clang “$@”

  else

  exec clang “$@”

  fi

  根据你的具体情况,如果你的项目中有 C++的文件,你可能还需要一个命名为 ccache-clang++ 的脚本,并在这个脚本里这么写:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !