用ccache加快emacs-master编译速度

虽然很多道友已经知道了,但只要一个人不知道我发贴就有意义,贴上 archwiki 描述

https://wiki.archlinux.org/title/Ccache

因为 Wiki 里面讲得比较详细了,因此就不介绍它是啥,什么原理,有什么用了。我就说一下我怎么配置的吧:

$ cat ~/.zshrc
export CC="ccache gcc"
export CPP="ccache cpp"
export CXX="ccache g++"

然后就像平常一样编译 Emacs,就好了,

$ ./configure -C --with-native-compilation --with-sound=no --without-xim --with-gsettings --with-json --with-xml2 --with-imagemagick=yes --with-sqlite3 --with-libotf --with-pgtk

$ make -j4 -l3.2

$ sudo make install

第一次使用会慢点,但后面再次编译就会非常快了。

P.S. 不过好像本来再次编译就会更快。。。。所以我也不知道到底提升了多少,我只知道自己git pull再重新编译安装比Gentoo的emerge -auvDN升级的时候要快很多。。。

1 个赞

对clean再build的提升不大吧?

就常规的编译emacs,也不用 5分钟吧

补充一下:ninja 也能达到类似效果

我在 MacBook Pro 2019 (i9 版本)上编译一次 Emacs 要 10分钟,开native-comp 的 NATIVE_FULL_AOT=1 的话,得20分钟。还是挺慢的

你们是多加了什么功能吗?

我是先直接下载 源码,然后就是

./configure

make -j4

sudo make install 你们不是这样的吗?

就开了个 native-compilation

   ./autogen.sh
   ./configure --with-native-compilation
   make -j$(nproc) NATIVE_FULL_AOT=1

我要8-15分钟,真得有点慢… 每次等好久

Windows 系统更慢,编译一次要 30分钟。

所以,我是编译一次尽量就不动了。看到有比较好的新特性引入再编译一次。或者 1-2 周有空的时候编译一下。

自己编译相对用 homebrew 装的 emacs-plus 有什么区别吗?

我目前在Mac 上使用 emacs-plus 28 经常会卡一下,有时候会直接卡退出去。用 org-mode 一天下来,不重启,打字都感觉卡手。

使用 go-translate 是百分百卡的不响应。

我目前是用这个编译脚本在 macOS 编译最新版本,使用上没任何问题,go-translate 我也用,很好用。

https://github.com/jimeh/build-emacs-for-macos

这是我自己总结的编译流程:

开 不开 native-compilation ,有啥区别?

用M1,编译一次5分钟,开启了native-comp