Emacs在Windows 10下的启动时间

windows

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

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

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


#23

你不是说耗时 70s 么…


#24

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


#25

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


#26

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


#27

喜欢就好:smile:


#28

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


#29

我做了张不专业的表,也发现在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

#30

Windows NTFS 的 IO 效率低下的锅。


#31

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