native Emacs Lisp

感觉在我的linux上的话 pdump 效果不算很大, windows 的话效果更明显些.

不过windows的emacs就主要用来写 org 没有多少配置.

要对比没有 lazy load 的情况下的速度,提升还是很明显的。特别是机械键盘的话。

AUR上libgccjit的维护者为了体验native-comp emacs,更新了他的PKGBUILD。如无意外,直接用AUR helper安装libgccjit就可以了,不用额外折腾。

https://aur.archlinux.org/packages/libgccjit/

4 个赞

现在直接装AUR里的emacs-native-comp-git就可以了,libgccjit会自动被装上。 昨晚试了试,睡前yaourt,起床后就全部装好了,完全无痛安装,现在真方便啊。

2 个赞

我靠羡慕arch啊. 认真考虑在Mac上安装一个双系统.

speed3也可以编译通过吗?

native-comp 真的会快吗?
看 aur 上有 emacs-native-comp-git 就试了下,除了启动变慢了,打开文件变慢了,其他似乎没感受到速度变快

benchmark-run is an autoloaded macro defined in benchmark.el.

Signature
(benchmark-run &optional REPETITIONS &rest FORMS)

Documentation
Time execution of FORMS.

If REPETITIONS is supplied as a number, run forms that many times,
accounting for the overhead of the resulting loop.  Otherwise run
FORMS once.
Return a list of the total elapsed time for execution, the number of
garbage collections that ran, and the time taken by garbage collection.
See also benchmark-run-compiled.

Human beings are the worst animal to guess the performance.

不清楚,我直接yaourt -S emacs-native-comp-git的,没作修改

嗯嗯,arch系的装软件都比较方便,热心的打包人很多。

不一定, comp-speed 0 好像不会快, speed3才会快

  script:
    - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev
    - ./autogen.sh autoconf
    - ./configure --without-makeinfo --with-nativecomp
    - make bootstrap BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 0)"' -j2

com-speed 3 速度确实快了很多,就是编译太耗时了

花了多长时间编译?

丢服务器上编译的,make -j16 大约20h,主要是后面 elc+eln 费时间,特别是 leim/ja-dic/ja-dic.el
编译自己用的包 (native-comp-async "~/.emacs.d/elpa" 16 t) 也花了不少时间(5h+,最后卡住,内存吃了 50g, 就强行关了)
配置 CPU: Xeon silver 4214 RAM:128G

2 个赞

卧槽。。。。 编译出来速度提升明显不?

看了看 leim/ja-dic/ja-dic.el 里面是给日语输入法用的字典,有 近20 8万条的样子. 生成这个文件之后删除词条就好了.

门槛这么高了么……

1 个赞

没测什么 benckmark, 自己使用体验来说快了不少。当然也有点 bug (ivy-posfram 不会自己消失了)
分享一下编译好的 arch 的包,sudo pacman -U 安装
Firefox Send(7天或100次下载有效)

emacs-native-comp-git包里面没有看到comp-speed的设置啊?编译的时候怎么设置?

yay --editmenu -S emacs-native-comp-git,编辑 make 时候的命令