makepkg 速度优化

2018-10-06 11:42:52

前不久在安装一个软件的时候发现需要 protobuf 3.6.1 而 Manjaro Linux 自带的是 3.6.0.1 但是找到了 PKGBUILD 文件,于是准备用 makepkg 命令编译并用 pacman -U 进行安装,结果却陷入了一场编译速度优化大战。

makepkg - 并行编译

编辑 /etc/makepkg.conf 查找 MAKEFLAGS 行,改为 MAKEFLAGS="-j8" ,这样子编译的时候将使用 8 个核,速度更快。我的测试中,从 30 分钟降到 6 分钟,5 倍的性能提升吧。

使用内存文件系统进行编译

编辑 /etc/makepkg.conf 找到 BUILDDIR 改为 /tmp/makepkg ,如果找不到就新增,我是新增。亲测影响不大,可能是因为我的测试本身就在 /tmp 目录下进行,且还是固态硬盘的缘故吧。

使用 ccache

先安装 ccache,然后编辑 /etc/makepkg.conf ,找到 BUILDENV ,将其值中 ccache 前面的感叹号去掉即可,我改后为:BUILDENV=(!distcc color ccache check !sign) 如果你只需要加速编译,那么,第一步即可,当然,你也可以使用第二三步,实测影响微乎其微,甚至因为 ccache 的目录是在用户目录下,由于读写磁盘反而导致编译速度减慢,我的测试中使用 ccache 反而多了 10 秒,当然,只测了一次,存在一定的误差是可能的。

ccache 配置

ccache 默认的配置文件为 /etc/ccache.conf 以及 ~/.ccache/ccache.conf 如果您内存足够大的话,修改默认的缓存路劲:cache_dir = /tmp/ccache 禁用 export CCACHE_DISABLE=1 清理 ccache -C 另外,默认是占用 5G ,你也可以修改为 2G ccache –set-config=max_size=2.0G

最后更新于