Ускорить загрузку Emacs путем компиляции пакетов - PullRequest
4 голосов
/ 29 сентября 2010

При загрузке пакетов, таких как orgmode, nxhtml, yasnippet, я вижу, что загрузка emacs значительно замедлилась.

Я ожидаю, что смогу ускорить его с помощью компиляции пакетов.

  • Могу ли я сделать это с помощью emacs?
  • Как правило, сколько можно ускоритьЯ жду?

Ответы [ 3 ]

7 голосов
/ 29 сентября 2010

Да, вы можете сделать это: Mx byte-compile-file для каждого .el, который вы хотите скомпилировать.Однако это не так сильно ускорит процесс, как использование «автозагрузки» и «eval-when-require».

5 голосов
/ 29 сентября 2010

Самый простой способ получить ускорение в вашем файле .emacs не имеет ничего общего с байтовой компиляцией, хотя вы всегда должны компилировать байты новых пакетов, которые вы устанавливаете.

Вместо этого, если вы знаете, что высделайте это в вашем .emacs:

(require 'some-pkg)

, а затем вы можете сделать это:

`Mx command-in-pkg '

Вам лучше добавить это в файл .emacs.

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

, который будет загружаться намного быстрее при запуске, чем требуется в оригинале.Многие пакеты имеют установочные установки, в которых есть файл, содержащий автозагрузки, которые вам требуются в вашем файле .emacs, который уже будет оптимизирован настолько, насколько это возможно для сопровождающего.

5 голосов
/ 29 сентября 2010

Обычно все, что идет с установкой Emacs, компилируется байтами, и каждый пакет, установленный вами через систему управления дистрибутивами Linux, также компилируется.Если вы используете ELPA - байт компилирует пакеты после их загрузки.Тем не менее, байтовая компиляция не принесет вам существенного прироста производительности.

Если мы предположим, что наибольшим узким местом в производительности Emacs является время запуска, вы бы лучше запустили один Экземпляр Emacs как демон (emacs --daemon) и общий доступ к нему между несколькими emacsclient процессами, которые запускаются сразу после запуска демона.

...