为什么我的启动有一定延迟?

还是关于启动的问题。

我的Emacs往往启动以后要卡一秒才会显示modeline和主页,并且能开始工作。但是在那之前启动工作就应该已经完成了才对。

这是启动的效果:

startup

在屏幕变成黑色,echo area显示loaded xxx packaged from xxx stars in xxx seconds的时候启动就应该结束了啊。因为这个计算启动时间的函数我是放在最后面的。

各位觉得有什么可能的原因吗?

应该是有什么东西在load 比如spaceline调用了什么东西 (projectile?或者那些unicode?)

我本来一直想的是什么画面加载问题,你这么一说可能还真是。

我试了试禁用除了evil和basic-ui以外的所有star(就是module),秒进。

看来要开始一个一个排除法了。


我发现是唯二没有延迟加载的包拖慢了我的启动:company和ivy。我现在的做法是设置了一个:defer 0.5。但是我感觉不是很靠谱啊。

doom-emacs里面干脆就是直接加载了(在post-init-hook里面), 但是doom的加载没有延迟,这个可能是我的加载方法的问题了。

2 个赞

破案了。是delight这个包严重拖慢启动进程。

是因为使用unicode变慢。


我把ivy和comapny defer了以后越想越不对,加载个包不至于整整一秒钟,而且doom-emacs里面就是直接加载的啊。经过各种折腾(省略一万字)我偶然发现竟然是delight拖慢了进程……

提醒大家不要在启动的时候使用delight

因为那些modeline上的图标是unicode,第一次显示unicode的时候都很慢。。

有什么好办法吗

用 bitmap

这方面的资料不是很多。你是指用bitmap字体吗?还是直接用bitmap图片?

用 bitmap 图片代替 Modeline 的 Unicode 字体

1 个赞