Как я могу отлаживать медленное время запуска Emacs?
Недавно у меня появился новый Retina MacBook Pro с Mountain Lion. К сожалению, emacs навсегда заходит на запуск (около 5 секунд) на моем новом компьютере. Я попытался установить последнюю версию emacs homebrew, но проблема не устранена. У меня нет файла .emacs, поэтому я не знаю, что может вызвать медленный запуск.
Какие инструменты у меня есть в моем распоряжении для отладки, когда emacs тратит свое время во время запуска?
Ответы
Ответ 1
Похоже, вам нужно иметь полное доменное имя для имени вашего компьютера (например, myretina.local
); в противном случае Emacs начнет медленно.
Вы можете проверить свое имя хоста через терминал с помощью
hostname
и вы можете установить его с помощью
sudo scutil --set HostName myretina.local
Ответ 2
Для начала запустите emacs -Q
(который запустит Emacs без файлов запуска вообще) и посмотрите, все еще медленнее.
Вы можете прочитать следующее, в котором объясняются все возможные файлы, которые Emacs будет искать по умолчанию:
C-h i g (emacs) Init File
RET
Ответ 3
Изменение имени хоста ничего не сделало для меня. То, что творит чудеса для меня, кажется противоположным интуитивным, но теперь мои emacs начинают мгновенно с терминала. Это то, что я сделал
alias emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init
Однако для начала работы с графическим интерфейсом все еще требуется несколько секунд, иногда даже 15 секунд. Weird!
Ответ 4
Emacs должен запускаться мгновенно в вашей настройке
Mac build (из источников)
% time /Applications/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs)' -Q
/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs) 0.19s user 0.06s system 35% cpu 0.696 total
NS build, загруженный с emacsformacosx.com
% time /Volumes/Emacs/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs)' -Q
/Volumes/Emacs/Emacs.app/Contents/MacOS/Emacs --debug-init -eval -Q 0.17s user 0.08s system 35% cpu 0.691 total
Я не использую homebrew для Emacs, но он должен быть похож. Вы уверены, что не загружаете нестандартные пакеты каким-то образом?
Ответ 5
Там действительно что-то полностью сломано с emacs
. Если nameservice
происходит сбой или маршрутизация не работает, или ваш туннель vpn выключен и т.д.
Для нас системные администраторы, начиная с vi, всегда являются опцией:
# time emacs -debug-init -eval '(kill-emacs)' -Q
real 2m5.177s
user 0m0.029s
sys 0m0.024s
В это время vpnc умер и вызвал некоторые проблемы (маршрутизация и nameservice). Обратите внимание на 2 минуты!
Спустя 30 лет использование emacs все еще не понимает, почему действительно нужно решить ваше имя хоста. Для блокировки файлов есть лучшие альтернативы, чем это.
Управление сотнями/тысячами машин и виртуальных машин и настройка отдельных файлов хостов на самом деле не является ответом. Вручную потребуется несколько дней/недель и автоматически генерировать. Это действительно так же хорошо, как ничего.