震惊!Spacemacs 启动慢的背后原来是它!(Spaceline)

开启 Spaceline 时:3s 关闭 Spaceline 后:1.7s

不至于拖慢这么多吧

很正常,我早就不用 spaceline 了

1 个赞

男人看了会沉默,女人看了会流泪。(笑)

Vim 用户看了会沉默,Emacs 用户看了会流泪 【doge】

2 个赞

机智。。啊少年

可是,那些好看的边边框框等等就没有了。 虽然这样更加hacker一些。

1 个赞

那可以让Emacs启动完全之后手动加载spaceline啊。用一个timer什么的

我发现了一件十分震惊的事。

Spacemacs 在有 elc 存在的时候加载配置时候加载的是原 el 文件。

为什么这么说?因为我字节码编译了自己写的 layer。因为编译的时候没加载对应的包会有 Warining ,我就用 eval-when-compil 写了 require 来消除警告。(这个函数作用时使被包含的表达式不会被加入 elc 文件,主要用于在只用到引用包里的宏的时候)

好长一段时间后发现我layer里的 (eval-when-compile ...) 里面的代码会运行。怪不得我的启动时间到了半分钟……现在改造完回到了 6 秒。

总结就是 用不着编译 Spacemacs 的配置 ,因为编译了也不会被加载,不符合 package 规范的文件被编译反而会可能导致错误。而且其实字节码的效率也就提升了一点点。


注:我用的是 develop ,不确定 master 是否有这样的情况。而且似乎在 user-config 加载自己的配置会正常加载 elc 文件。