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

时间:2010-09-29 03:09:43

标签: emacs elisp

使用orgmode,nxhtml,yasnippet等软件包加载时,我发现emacs的加载速度相当慢。

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

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:5)

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

相反,如果您知道在.emacs中执行此操作:

(require 'some-pkg)

然后你可以这样做:

`M-x command-in-pkg'

最好将此添加到.emacs文件中。

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

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