资料介绍
[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++ 的脚本,并在这个脚本里这么写:
- xcode-configure xcode编译插件
- CleanHeaders-Xcode Xcode插件
- 提高LabVIEW开发速度25技电子版资源下载 0次下载
- SPWM原理及控制方法 4次下载
- 如何提高隔离式电源的效率
- 单片机C函数中的嵌入汇编之形参传递详细资料说明
- 如何提高复杂环境下的人脸识别的增强算法资料概述 8次下载
- 如何使用AVR单片机来设计智能快速充电器提高充电速度详细资料分析 21次下载
- 如何使用ARMC编译器编写高效的定点算术编码或汇编 8次下载
- 《模拟电路故障诊断》 37次下载
- 模拟电路故障诊断 35次下载
- Assmann SuperSpeed USB 6次下载
- 模拟电路故障解决-中文版 0次下载
- 基于64位机器的32位指针优化方法 0次下载
- 提高加热炉PLC系统稳定性的实现
- 高速度高贴片机 552次阅读
- 如何提高编译速度 1173次阅读
- 解决EMC问题的一些经验 1215次阅读
- 如何提高MAX4007的工作速度 609次阅读
- 有效提高编译速度的方法 4131次阅读
- 802.11ac新一代Wi-Fi标准大大提高网络的应用效率 3912次阅读
- 如何才能提高隔离式电源的效率 1172次阅读
- 利用NI半导体测试系统(STS)软件的增强功能,加速测试程序开发,提高运营 1073次阅读
- 技术 | 如何提高 VMware 虚拟机下服务系统运行性能? 3469次阅读
- 讲述增量编译方法,提高Vivado编译效率 9824次阅读
- CAD教程之五十多个实用CAD制图操作技巧 1w次阅读
- Sharp推出CG-Silicon显示技术,可大大提高LCD器件的性能 2980次阅读
- Ptx推出四维光学传感器,应用于汽车领域,大大提高了机器的全方位感知 1432次阅读
- 采用以FPGA为基础的变频器惯性输出技术,能大大提高变频器的稳定可靠性 1825次阅读
- 研究人员正借助AI的力量以改善对心脏异常的检查,并提高诊断的准确性 4182次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多