9

编译 emacs 29

 1 year ago
source link: https://hsingko.github.io/post/2022/07/06/emacs29/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

编译 emacs 29

2022-07-06 · 2 分钟 · hsingko

听说 emacs-29 添加了内置 sqlite 支持,这个功能会很大程度地优化 org-roam 的性能。现在我的 org-roam 里面已经有 900 个左右的 node 了,冷启动的时候大约需要加载两三秒钟的样子,我想既然有优化的空间,那为什么不试试看新版本的 emacs 呢?

唯一的问题是目前 arch 源最新的版本是 28 ,如果想要使用 29 那么需要自己编译。我手头的机器是 thinkpad T470 ,五年前的机子性能自然不怎么样,有点担心需要花上很长的时间才能安装好,但反正也没其他的事情想要去做,为什么不试试看呢?

我使用的 aur 源是 emacs-git ,编译之前我开启了多核并行编译选项,以及开启了 gnome 的超频设置,这可以让我的 cpu 最大频率上升到 3.1GHz 。最终的结果是:

  • 编译 emacs 花费 30 分钟
  • 使用 doom sync 重新编译相关包花费 17 分钟

cpu 全程满负荷,温度最高上升到 80 摄氏度,烤得整个房间都热起来了,而且我的房间里还没有空调!

之后安装 emacsql-sqlite-builtin 包,以及在 config.el 中开启 org-roam 的支持:

(setq org-roam-database-connector 'sqlite-builtin)

然而个人感觉 org-roam 的性能上没有什么明显的提升,可能就快了半秒钟的样子,当然可能是节点数还不够,不能体现出 builtin sqlite 的优越性,如果你的情况大概和我一样,那么我的建议是不要折腾,实在是没有必要为了这点提升而空等近一个小时(而且以后每次更新的时候都要重新编译一次,那可太糟糕了)而且 doom emacs 目前并不正式支持 29 ,因此可能会遇到各种各样的小毛病,我现在就遇到 emacs-rime 启动后无法正常关闭 emacs 的问题。

对了, emacs29 还提供了像素级滚动的功能,开启这个功能后,使用滚轮翻页会变得更流畅。个人体验还可以(但是还是不如 neovim 上的表现),在查看有长图片的 buffer 时会比较有用,如果对这个功能有强烈需求的话可以试试。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK