2012-09-06 8 views
12

Ich habe vor kurzem ein neues Retina MacBook Pro, mit Mountain Lion. Leider dauert Emacs auf meinem neuen Computer für immer (ca. 5s). Ich habe versucht, die neueste Homebrew-Version von Emacs zu installieren, aber das Problem bleibt bestehen. Ich habe keine .emacs-Datei, also bin ich ratlos, was den langsamen Start verursachen könnte.Wie kann ich die langsame Startzeit von Emacs debuggen?

Welche Werkzeuge habe ich zur Verfügung, um zu debuggen, wo emacs seine Zeit während des Starts verbringt?

+0

Sie können auch 'M-x emacs-init-time' ausführen, um zu bestimmen, wie lange Emacs Ihre Init-Dateien liest (was 0 s sein sollte, wenn Sie mit' -Q' beginnen). Vielleicht möchten Sie auch diesen [übergeordneten Emacs-Port] (https://github.com/railwaycat/emacs-mac-port) für Ihren Mac (es ist viel schneller für Flyspell, TRAMP, etc.). – jmdeldin

+0

Ich bekomme 0.0 Sekunden. Beginnend mit "-Q" ergibt sich immer noch eine langsame Startzeit. – Mike

+0

Hmm ... Was ist in den '* Nachrichten *' Puffer, wenn Sie 'emacs -Q --debug-init' starten? Um zu verdeutlichen, laufen Sie in der Konsole oder mit einer GUI? – jmdeldin

Antwort

22

Offenbar müssen Sie einen vollständig qualifizierten Domänennamen für den Hostnamen Ihres Computers haben (z. B. myretina.local). ansonsten Emacs will be slow to start.

Sie können Ihren Hostnamen via Terminal mit

hostname 

überprüfen und Sie es mit

sudo scutil --set HostName myretina.local 
+0

Arbeitete für mich. Running Lion, HostName wurde nicht festgelegt. Emacs sehr langsam zu starten. Legen Sie HostName. Emacs beginnt sofort. Danke. – etchasketch

4

Starten Sie zunächst emacs -Q (wodurch Emacs ohne Startdateien gestartet wird) und sehen Sie, ob das noch langsam ist.

Möglicherweise möchten Sie über die folgenden lesen, die alle die verschiedenen möglichen Dateien erklärt, die Emacs standardmäßig sucht wird:

Chig(emacs) Init FileRET

+1

'emacs -Q' ist immer noch langsam. Wenn ich Ch ig Init mache, bekomme ich (No Match), und kann nicht den Raum eingeben. – Mike

+0

Es scheint, dass Sie nicht t tippe den '(emacs)' Teil? Alternativ benutze 'M-: (info" (emacs) Init-Datei ") RET'. Wenn aber' emacs -Q' langsam ist, hilft das Lesen von Init-Dateien nicht Ich möchte versuchen, http://emacsformacosx.com/ aber das ist der Umfang meiner Vorschläge, sorry. – phils

1

Emacs sollte sofort in Ihrem Setup starten

Mac bauen (aus Quellen)

% 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 von 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 

ich Homebrew nicht für Emacs verwenden heruntergeladen, aber es sollte ähnlich sein. Sind Sie sicher, dass Sie keine Nicht-Standard-Pakete laden, wie?

2

Ändern Hostnamen tun nichts für mich einstellen. Was für mich Wunder wirkte, scheint mir nicht intuitiv zu sein, aber jetzt beginnt mein Emacs sofort im Terminal. Dies ist, was ich tat

alias emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init 

Allerdings dauert es noch ein paar Sekunden, manchmal sogar 15 Sekunden von der grafischen Oberfläche zu starten. Seltsam!

0

Es ist wirklich etwas völlig gebrochen mit emacs. Wenn nameservice kollabiert oder Routing nicht in Ordnung ist, oder Ihr vpn Tunnel ist aus usw.

Für uns sysadmins, vi Start ist immer eine Option:

# time emacs -debug-init -eval '(kill-emacs)' -Q 

real 2m5.177s 
user 0m0.029s 
sys  0m0.024s 

Zu diesem Zeitpunkt der vpnc gestorben und verursachte einige Probleme (Routing und Nameservice). Hinweis über 2 Minuten!

Nach 30 Jahren mit Emacs immer noch nicht verstehen, warum es wirklich Ihren Hostnamen auflösen muss.Zum Sperren von Dateien gibt es bessere Alternativen als diese.

Das Verwalten von Hunderten/Tausenden von Maschinen und VMs und das Festlegen einzelner Host-Dateien ist keine wirkliche Antwort. Manuell würde es Tage/Wochen dauern und automatisch generieren. Es ist wirklich so gut wie nichts.