Emacs在Windows 10下的启动时间

  1. 是啊,(package-initialize)显示花费4s。

  2. (when (file-exists-p custom-file) (load custom-file))也花费差不多3秒,custom-file里面其实没几行代码。

  3. 难道有方法优化(package-initialize),缩短花费时间?

你不是说耗时 70s 么…

这个启动时间跟电脑的关系极大,我自己的T440,使用的不是很好的全固态硬盘,启动以及反映速度还是很快的。公司的混合硬盘,有一个128G的SSD和一个1T的机械,使用起来感觉比较卡顿。

把doom-modeline 放到 after-init-hook 里可以提高速度。

(package-initialize)这个确实很慢,在 Windows 上尤其明显,不知道27的方法是否有改善。

喜欢就好:smile:

Windows 下启动慢应该是 Emacs 本身的问题,同样的配置在 Linux 和 macOS上会快很多。Windows 版本的 Emacs 是 msys 编译的,本质上就会慢上许多。

1 个赞

我做了张不专业的表,也发现在Windows10下,影响Emacs启动时间的根本原因并不在于我自己的配置文件。

附:Windows10下Emacs启动时间表

| id | times | (car command-line-args)     | user-init-file | (buffer-size) | (emacs-init-time) |
|----+-------+-----------------------------+----------------+---------------+-------------------|
|----+-------+-----------------------------+----------------+---------------+-------------------|
|  0 |     0 | runemacs.exe                | init.el        |         81779 |              12.1 |
|  1 |     1 | runemacs.exe                | init.el        |         81779 |               1.0 |
|  2 |     2 | emacs.exe -Q --load init.el | init.el        |         81779 |               0.2 |
|  3 |     3 | runemacs.exe                | init.el        |         81779 |               1.2 |
|  4 |     4 | runemacs.exe                | init.el        |             0 |               1.1 |
|  5 |     5 | emacs.exe -Q --load init.el | init.el        |             0 |               0.2 |
|  6 |     6 | runemacs.exe                | ~/.emacs       |               |               1.1 |
|  7 |     7 | emacs.exe -Q                | nil            |               |               0.3 |
|----+-------+-----------------------------+----------------+---------------+-------------------|
|  8 |     0 | runemacs.exe                | ~/.emacs       |               |               8.0 |
|  9 |     1 | runemacs.exe                | ~/.emacs       |               |               1.0 |
| 10 |     2 | emacs.exe -Q                | nil            |               |               0.2 |
|----+-------+-----------------------------+----------------+---------------+-------------------|
| 11 |     0 | runemacs.exe                | init.el        |             0 |               4.9 |
| 12 |     1 | runemacs.exe                | init.el        |             0 |               1.1 |
| 13 |     2 | emacs.exe -Q --load init.el | init.el        |             0 |               0.2 |
| 14 |     4 | runemacs.exe                | ~/.emacs       |               |               1.0 |
| 15 |     5 | emacs.exe -Q                | nil            |               |               0.2 |

表注:

  • id:测试的索引值,0代表0号测试,依次类推。
  • times:0代表重启电脑后首次启动Emacs,1代表电脑在运行的过程里再次启动Emacs,依此类推。
  • (buffer-size)user-init-file文件的大小,0代表存在用户配置文件但内容为空,没有值代表不存在用户配置文件。
  • (emacs-init-time):单位为秒,代表"Emacs启动时间"。
  • systeminfo.exe
    OS Name:                   Microsoft Windows 10 Education
    OS Version:                10.0.17763 N/A Build 17763
    System Type:               x64-based PC
    Processor(s):              1 Processor(s) Installed.
                               [01]: Intel64 Family 6 Model 37 Stepping 5 GenuineIntel ~2533 Mhz
    Total Physical Memory:     1,975 MB
    Available Physical Memory: 823 MB
    Virtual Memory: Max Size:  6,975 MB
    Virtual Memory: Available: 5,588 MB
    Virtual Memory: In Use:    1,387 MB			   
    
  • (emacs-version):GNU Emacs 26.1 (build 1, x86_64-w64-mingw32) of 2018-05-30

Windows NTFS 的 IO 效率低下的锅。

不会啊,原生的 Windows程序就很快

我使用的Purcell 大神的配置,在windows 10 上48s。在mac上没注意,大概10s左右。

这也太慢了吧,我的电脑上使用 Centaur测试,emacs-init-time 如下:

  1. macOS 10.15.3: ~1.7s
  2. Ubuntu 18.04: ~1.4s
  3. Windows 10: ~3.4s

实际使用略有出入,但不会超过 6s。

1 个赞

羡慕啊,能否分享下你的配置啊。我这实在有点忍受不了接近50s的启动时间,每次开了都舍不得关闭。 原来在Windows上开dired模式和org-mode都卡的不能用,后来加了(setq inhibit-compacting-font-caches t) 正常了。 看来我的配置还有很多问题。另外求教下debug问题的方法?

Debug有很多方法了,比如 edebug,message 大法,二分查找……还是得看具体问题。

1 个赞

在windows上最长大概10s.

我配置极低的电脑,win10下1秒启动。26.1.0.0版。仅挂了个五笔el。 打开org文件的话,从点到完全打开要3秒

Windows10 X64 启动时间5.8s.

你这个是什么字体呢?看起来不错