Конфигурация:
- Одна система
- ОС Windows 10 как двойная загрузка
- ОС Ubuntu 15.10 в качестве двойной загрузки
- Emacs 25.0.1 с графическим интерфейсом
У меня есть один dot-emacs
файл и все в моей .emacs.d
папке (пакеты также находятся в .emacs.d
). Все эти файлы находятся в одной папке Dropbox.
В Windows 10: я поставил символическую ссылку dot-emacs
и .emacs.d
из домашней папки в Windows в расположение в Dropbox.
В Linux / Ubuntu 15.10: я также поставил символическую ссылку dot-emacs
и .emacs.d
из моей домашней папки Ubuntu (/ home / user /) в расположение в Dropbox.
Таким образом, все файлы, связанные с Emacs, хранятся в одной папке Dropbox в разных операционных системах.
Windows и Linux работают как с двойной загрузкой на одном диске, так и на том же оборудовании.
Когда я запускаю Emacs в Windows, требуется 7,4 секунды для запуска.
Когда я запускаю Emacs в Linux, запуск занимает всего 2,3 секунды.
Это как с Emacs с графическим интерфейсом, так и с версией 25.0.1. Обе операционные системы расположены на одном компьютере на одном и том же диске SSD. Так что это тоже самое оборудование.
Следующие вещи идентичны в операционной системе (Windows 10 и Ubuntu 15.10):
- Программное обеспечение Emacs, версия 25.0.1
- Конфигурационные файлы (.emacs.d)
- Один жесткий диск (все файлы внутри `.emacs.d) и обе ОС находятся на одном SSD).
- аппаратные средства
Одно отличие:
- Скомпилированный Emacs для Windows или Linux работает на платформе Windows или Linux соответственно. Это единственная разница.
Я изо всех сил пытаюсь понять, почему Emacs заметно короче время запуска в Ubuntu, чем Windows.
emacs -Q
.(message emacs-init-time)
измерить время запуска. Насколько я знаю, это не ограничено функцией. Так, как я мог измерить это сemacs -Q
тогда?M-x emacs-init-time RET
Ответы:
Заметка: Windows работает медленно.
Я регулярно использую Emacs как для Windows (Cygwin и native), так и для GNU / Linux (Arch), и я это тоже заметил. Я полагаю, что ответ заключается в том, что Linux во многих областях просто быстрее, чем Windows, особенно в операциях с файловой системой 1 и операциях с потоками / разветвлениями 2 .
Я думаю, что различие в производительности наиболее заметно иллюстрируется при использовании git, и особенно Magit (поскольку он выполняет довольно много команд для своего буфера состояния). Git ужасно медленно работает на Windows. На самом деле он настолько медленный, что я часто редактирую код в Windows в своей папке Dropbox, жду, пока он синхронизируется с моим Linux VPS, и затем использую Magit через SSH, вместо того, чтобы просто использовать его в Windows.
Работа
time git status
в главной ветке Emacs занимает в среднем 0,025 секунды для меня. В Windows (родной) это занимает 0,075–0,100 секунд, в Windows (Cygwin) - 0,200 секунд. Это может показаться не таким уж большим, но это означает, что в Windows это в 3-4 раза медленнее.Следует также отметить, что некоторые антивирусные программы (в частности, McAfee) могут вызвать значительное замедление работы. С включенным McAfee On-Access Scanner все заметно медленнее для меня. Cygwin's
git status
может занять до 2 минут! Только после выключения я получаю время, указанное выше.В сторону: я только что нашел переменную
magit-refresh-verbose
, которая обновляет статус. Вот несколько раз для обновленияmagit-status
буфера в основной ветке Emacs:Windows (родная)
Windows (Cygwin)
GNU / Linux (Arch, худшее оборудование, VPS)
Более высокая скорость Cygwin удивила меня.
http://www.slideshare.net/PrincipledTechnologies/comparing-file-system-performance-red-hat-enterprise-linux-6-vs-microsoft-windows-server-2012
/programming/12878980/speed-performance-of-a-qt-program-windows-vs-linux
источник
exec-path
? ( stackoverflow.com/questions/16884377/… ) В моем случае это значительно улучшило скорость.exec-path
.Может быть, вы можете попытаться настроить emacs-сервер, чтобы вам было удобнее. Используя этот подход или запустив emacs в качестве демона, вы можете просто использовать emacsclient для запуска новых окон, не загружая другой экземпляр emacs. Это хороший подход. Я не проверял это в Windows, но вот ссылка, которая объясняет, как его использовать. Надеюсь, это поможет тебе, парень.
Emacs Server
источник