掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!

Posted 一去丶二三里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!相关的知识,希望对你有一定的参考价值。

随着 C++ 项目的持续扩大,编译效率越来越是一个问题了。想一想你每天花在这上面的时间,再乘以团队成员的个数,是不是成本很高?

那有没有什么办法,在不需要修改源码,也不更换硬件的情况下提升效率呢?一起来看看下面这几个方法,足以让你的编译速度飞起来。

先随便下载一个第三方源码,例如:spdlog,我们来测试一下整个编译需要多久:

源码很少,但却用了 00:48,速度着实不给力,来优化一下吧!

1

启用多核编译

可以开启多核编译来提高编译速度,充分利用机器的性能来优化编译。

打开 Qt Creator,选择【Kits】->【构建套件(kit)】,在【Environment】处输入“MAKEFLAGS=-j16”。

这是最便利的方式,一劳永逸,只需设置一次,后期所有使用 make 的构建系统都会自动启用。

这里的数字大小,需根据电脑的 CPU 核心数和线程数来设置,假如是 8 核 16 线程,建议设置 16。

qmake 设置

如果只想应用于某个特定项目,选择【项目】->【构建步骤】->【Make】,点击右侧的【详情】按钮,在【Parallel jobs】或者【Make arguments】处设置并行工作线程的个数,这两个效果是一样的:

cmake 设置

和 qmake 类似,只不过 cmake 的设置在【Tool arguments】处:

效果

设置完成之后,重新编译一下:

优化到了 00:10,怎么样,提升了不少吧。

2

使用 ccache 编译器缓存

ccache(全称:compiler cache)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息,比如头文件,这样就节省了通常使用 cpp 解析这些信息所需要的时间。

  • ccache 主页:https://ccache.dev/

  • 文档地址:https://ccache.dev/documentation.html

  • GitHub 源码:https://github.com/ccache/ccache

安装 ccache

要安装 ccache,执行以下命令:

$ sudo apt install ccache  

qmake 设置

打开 .pro,添加以下配置,ccache 就可以工作了:

QMAKE_CXX = ccache $$QMAKE_CXX 

从 Qt 5.9 开始,有一个更简单的方式:

load(ccache)

cmake 配置

在 CMakeLists.txt 中添加以下配置,将 ccache 作为编译命令和链接命令的启动器:

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)

效果

配置完成之后,再来测试一下:

简直吊炸天 - 00:01,从最初的 48 秒优化到了仅需 1 秒,效率提升了快 50 倍,这速度 6 的飞起!

往期推荐

☞ 趣味设计模式

☞ 音视频开发

☞ C++ 进阶

☞ 超硬核 Qt

☞ 玩转 Linux

☞ GitHub 开源推荐

☞ 程序人生

关注公众号「高效程序员」????,一起优秀!

回复“1024”,送你一份程序员大礼包。

以上是关于掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!的主要内容,如果未能解决你的问题,请参考以下文章

掌握10个常用搜索技巧,让你快人一步

五个办公必备的Excel小技巧,让你的工作不在白费

10个小技巧,让你的谱面更专业

最实用的50个jquery小技巧

10个提升MySQL百家乐性能baijiale的小技巧

Edge《这七款神仙插件,让你的Edge浏览器好用到起飞!#电脑小技巧 #windows #edge浏览器》- 知识点目录