Windows 11 1.7
s ~ 2.4
s; Linux 底下大約 0.0
s ~ 0.1
s!
怎么做到的?
之前也有人問過我這問題; 不過我現在找不到了!
基本上就三個元件:
- 懶加載 (核心)
- 劃分獨立模塊 (不透過
load-path
) - 劃分獨立插件 (把模塊劃分成一個獨立插件)
本質都是懶加載, 不過方式比較不一樣! 1 類似於 use-package
的 :defer
. 2 有固定的模塊文件, 通常把客製 (核心外) 的配置放這. 3 配置寫多了, 一些功能可以獨立分開成一個獨立插件. 獨立起來, 然後放入自己的 ELPA.
為什麼要建立自己的 ELPA (或投靠別人的 ELPA)? 原因還是速度, 除了 package.el
以外的方式都會拖慢啟動速度. 如果你使用 Unix-like 的系統, 那就不用太擔心了.
參考連結:
还是跟CPU最相关啊
你这是开了 lazy loading 么?我 M2 也要 4 秒,刚开机第一次启动好像要十多秒,不过反正 daemon,倒无所谓。
用 use-package 来 lazy-load 了一些东西
可能用的是 (emacs-init-time)
, 这个启动时间是不完全统计的
挖坟,lazy loading 的配置(emacs-init-time)
显示的比感觉到的时间短很多,我的只有0.5s。我在early-init.el
和window-setup-hook
之间计时,结果是1.5s,这样应该比较准确。
这个帖子居然有13.2k的浏览量!
最近换用 win 己经不在意启动速度。干活不缺那点时间。
挖坟,启动时间 1.4s
windows下0.89秒
我目前的方案(koishimacs)也就只能压到0.75s了(在一台13代i5 linux机器上,使用emacs-29.4),明明能想到的优化手段都用了,在emacs初始化的时候总是会耗费大量时间,我分析了一下
- 洁净启动需0.11秒左右,其中gc占0.05秒
- 完整启动需0.75秒左右,其中gc占0.1秒
- 所有的use-package初始化代码加起来大概0.3秒
这个0.3秒左右的空洞究竟是哪里产生的呢?可以确定它在加载koishimacs.el之前就产生了。我没有运行package-initialize
,但是package.el似乎还是花了很多时间加载安装的那些包。
趁这个有人挖坟的空当求教下大佬们 。
0.11 <=> 0.5
Doom loaded 172 packages across 46 modules in 2.411s
(windows OS)
gtk前端
ELISP> (emacs-init-time) “0.771516 seconds”
终端
ELISP> (emacs-init-time) “0.380685 seconds”
(emacs-init-time)
"0.687946 seconds"
windows-nt
大佬参上…
能在 Windows 干到这速度, 属实牛批