通过编译包加快加载emacs的速度

pro*_*eek 4 emacs elisp

随着包加载,如orgmode,nxhtml,yasnippet,我看到emacs的加载速度相当慢.

我希望我可以通过编译软件包加快速度.

  • 我可以用emacs做到这一点吗?
  • 通常情况下,我可以期待多少加速?

off*_*by1 7

是的,你可以这样做:你要编译的每个.el上的Mx字节编译文件.但是,它不会像使用"autoload"和"eval-when-require"一样加快速度.


Boz*_*sov 5

通常,Emacs安装附带的所有内容都是字节编译的,并且您通过Linux分发包管理系统安装的每个软件包也都会被编译.如果你正在使用ELPA - 下载后它会编译包.也就是说,字节编译不会带来任何显着的性能提升.

如果我们假设Emacs性能的最大瓶颈是它的启动时间,那么将一个Emacs实例作为守护进程(emacs --daemon)启动并在多个emacsclient进程之间共享它会做得更好,这些进程将立即启动守护程序正在运行.


Eri*_*ric 5

.emacs文件中获得加速的最简单方法与字节编译没有多大关系,尽管您应该始终对您安装的新软件包进行字节编译.

相反,如果你知道你这样做.emacs:

(require 'some-pkg)

然后你可能会这样做:

`Mx command-in-pkg'

你最好把它添加到你的.emacs文件中.

(autoload 'command-in-pkg "some-pkg" "A command in some package" t)

这将在启动时加载比原始要求更快.许多软件包的安装设置都包含一个文件,其中包含您在.emacs文件中需要的自动加载文件,这些文件已经过优化,维护人员可以获得它.