Wie kann ich Terminal.app oder iTerm unter Mac OSX beschleunigen?

18535
pmaiorana

Jedes Mal, wenn ich iTerm oder ein Terminal starte, nachdem ich es einige Stunden nicht verwendet habe, dauert es 10 bis 20 Sekunden, bis eine Aufforderung zurückgegeben wird. Der Bildschirm ist leer und obwohl ich tippen kann, kann ich eigentlich keine Befehle ausführen.

Wenn ich eine der beiden Anwendungen stoppe, sind nachfolgende Starts (wenn sie relativ bald danach ausgeführt werden) recht schnell. Die Langsamkeit scheint nur dann aufzutreten, wenn die App einige Stunden nicht ausgeführt wurde.

Ich verwende OSX 10.5.7 auf einem MacBookPro. Ich habe genau das gleiche Setup auf einem anderen Computer, ohne Abstriche zu machen.

Irgendwelche Ideen, wie man die Dinge wieder beschleunigt?

41
Ich liebe es, wie diese Frage von zwei anonymen Benutzern mit Zufallszahlen gestellt und beantwortet wird. Ich sehe dieses Muster nicht so oft! :) cregox vor 13 Jahren 0
Siehe auch http://apple.stackexchange.com/questions/41743/how-do-i-speed-up-new-terminal-tab-loading-time rogerdpack vor 9 Jahren 0

8 Antworten auf die Frage

39
user12544

Löschen Sie die Apple-Systemprotokolldateien in /var/log/asl/:

sudo rm /var/log/asl/*.asl 

Das hat den Trick für mich gemacht.

(ASL = Apple System Log) Arjan vor 14 Jahren 3
Dies ist der, der funktioniert hat. Vielen Dank! pmaiorana vor 14 Jahren 0
+1. Arbeitete wie ein Zauber, obwohl eine der anderen Antworten nahelegte, dass ich eine nicht triviale .bashrc habe. alesplin vor 13 Jahren 0
Wie bereits in [OsXDaily] (http://osxdaily.com/2010/05/06/speed-up-a-slow-terminal-by-clearing-log-files/) ausgeführt, empfehle ich `sudo rm -rf / private / var / log / asl / *. asl` stattdessen, weil es sicherer ist, da es 1) nur die Protokolldateien löscht und 2) das Ablegen in das falsche Verzeichnis und das Entfernen aller Dateien vermieden wird. Matthew Rankin vor 13 Jahren 7
Hat jemand eine Idee, warum sich die Größe der Systemprotokolle darauf auswirkt, wie schnell das Terminal geöffnet wird? James McMahon vor 11 Jahren 1
@JamesMcMahon Der `login'-Prozess scheint alle Dateien und Ordner auf der obersten Ebene von` / var / log / asl` zu lesen. Führen Sie `sudo opensnoop | aus grep / var / log / asl`. user495470 vor 11 Jahren 3
Ah, das Terminal war also keine Login-Shell, es würde sich schneller öffnen. Interessant. James McMahon vor 11 Jahren 0
Wozu dienen diese Protokolle? Wie unterscheiden sie sich von der Muschelgeschichte? Nathan Long vor 11 Jahren 0
Sie können auch die Terminal.app-Voreinstellungen aufrufen und auf der Registerkarte "Start" den Befehl auf Ihre Shell statt auf die Standardeinstellung "login" setzen. "login" liest anscheinend die Protokolle, um die letzte Anmeldezeit zu ermitteln. Michael Mior vor 11 Jahren 0
30
user150579

Ein weiterer Tipp könnte hilfreich sein:

Ändern Sie die Start-Shell von default /usr/bin/loginauf /bin/bash -loder, /usr/bin/zshwenn Sie zsh verwenden.

Das könnte dazu führen, dass Ihr Terminal / iTerm2 in Lichtgeschwindigkeit startet!

  • Für Terminal: Einstellungen → Start: Von "Standard-Login-Shell" in "Befehl: /bin/bash -l" wechseln

  • Für iTerm2: Einstellungen → Profile → Allgemein → Befehl: Von "Login-Shell" zu "Befehl: /bin/bash -l" wechseln

Dies beschleunigte das Laden neuer Tabs erheblich. Sindre Sorhus vor 11 Jahren 2
Ich kann nicht sagen, wie sehr mir das geholfen hat. In nur einer Sekunde ~ 6 Monate langsame Terminalleistung behoben. Sam Stern vor 10 Jahren 1
/ bin / bash -l arbeitet für mich! Phill Pafford vor 10 Jahren 0
Für diejenigen, die die MacPorts bash bevorzugen: `/ opt / local / bin / bash -l` Ioannis Filippidis vor 10 Jahren 0
Die Verwendung von `/ bin / bash -l` reicht anscheinend nicht für Yosemite (mehr?), für andere Probleme, siehe http://apple.stackexchange.com/questions/41743/how-do-i-speed-up- Ladezeit des neuen Terminals rogerdpack vor 9 Jahren 0
Das Löschen des Protokolls ist in Ordnung, aber nach kurzer Zeit ist der Bash-Anmeldeprozess wieder langsam. Die `/ bin / bash / -l` ist eine zukunftsweisende Lösung. michelgotta vor 7 Jahren 0
Das Entfernen der ASL und das Wechseln zu `/ bin / bash -l` hat für mich nichts schneller gemacht. weitere Gedanken zur Fehlerbehebung? Justin vor 7 Jahren 0
Hat diese Änderung dein Thema gebrochen? Chris Hough vor 6 Jahren 0
9
tmadsen

Brauche ich einen gewissen Ruf, um Beiträge zu kommentieren? Das Löschen der Systemprotokolle hat es auch für mich getan, danke. Ich habe versucht, path_helper mit dem Patch hier zu patchen: gist.github.com/123525, wie in einem Kommentar zu http://mjtsai.com/blog/2009/04/01/slow-opening-terminal-windows/ vorgeschlagen ( wurde bereits in diesem Thread erwähnt), jedoch ohne Erfolg. Ich bekomme einen kryptischen Fehler. Dieser Patch sollte jedoch den Start von terminal.app beschleunigen.

Zusätzlich: Wie gesagt, das Löschen der Protokolle hat mir den Trick gebracht, aber das Problem taucht immer mehr auf, da die Protokolle immer größer werden, nachdem ich sie entfernt habe. Ich habe festgestellt, dass "Tweaking" /etc/asl.conf mir eine dauerhaftere Lösung gibt. Die Modifikation besteht darin, nur Nachrichten zu protokollieren, die als "kritisch" oder kritischer eingestuft sind, im Gegensatz zur Protokollierungskategorie "Benachrichtigung" und jeder kritischen Kategorie. Ich ignoriere auch Nachrichten von FTP, Mail, local0, local1. Hier ist eine Kopie meiner /etc/asl.conf:

 ## # configuration file for syslogd and aslmanager ##  # redirect com.apple.message.domain to /var/log/DiagnosticMessages ? [T com.apple.message.domain] store_dir /var/log/DiagnosticMessages exclude_asldb  # authpriv messages are root/admin readable ? [= Facility authpriv] access 0 80  # remoteauth critical, alert, and emergency messages are root/admin readable ? [= Facility remoteauth] [<= Level critical] access 0 80  # broadcast emergency messages ? [= Level emergency] broadcast  # save kernel [PID 0] and launchd [PID 1] messages ? [<= PID 1] store  # save everything from emergency to notice #? [<= Level notice] store ? [<= Level critical] store  # save lpr info level and above #? [<= Level info] [= Facility lpr] store  # save all mail, ftp, local0, and local1 messages #? [= Facility mail] store #? [= Facility ftp] store #? [= Facility local0] store #? [= Facility local1] store 
Willkommen bei der SU. Ja, 50 Ruf wird benötigt, aber es gibt noch mehr zu wissen, also besuchen Sie http://superuser.com/faq sofort! ;-) Arjan vor 14 Jahren 1
7
Chealion

Aus einem Artikel, den ich vor ein paar Wochen gelesen habe: Slow Opening Terminal Windows

/usr/libexec/path_helperist beim Laden furchtbar langsam /etc/pathsWenn Sie alle Einträge entfernen /etc/pathsund sicherstellen, dass diese Elemente verfügbar sind, .bash_profilewird das Problem behoben. Es hat mir trotzdem gefallen.

Zufällig hat jemand path_helper umgeschrieben, und es ist verfügbar unter: http://github.com/mgprot/path_helper Chealion vor 14 Jahren 0
Ist es immer noch so? "path_helper" scheint nicht langsam zu sein ... Franklin Yu vor 6 Jahren 0
1
Mike McQuaid

Wenn die Terminalanwendung geladen wurde, Sie jedoch noch keine Eingabeaufforderung haben, dauert es eine Weile, bis die Shell initialisiert wird.

Dies bedeutet wahrscheinlich, dass Sie zu viel oder zu zeitaufwändig sind .bashrc( vorausgesetzt, Sie verwendenbash ).

Dies ist möglicherweise das Problem, das ich habe, wissen Sie, wie ich überprüfen kann, ob ich bash verwende, wo ich auf die .bashrc-Datei zugreifen kann? alvincrespo vor 12 Jahren 0
0
KeithB

Meine Vermutung ist, dass mit der Zeit etwas viel Speicher verbraucht. Wenn Sie ein Terminal starten, nachdem Sie es längere Zeit nicht verwendet haben, muss etwas Speicher verfügbar gemacht werden, indem Sie den Inhalt auf die Festplatte auslagern. Wenn Sie den Terminal-Prozess beenden und relativ schnell neu starten, ist der Speicher noch verfügbar und er wird schnell gestartet. Dies sollte auch bei anderen Anwendungen der Fall sein.

Sie sollten Ihre Speichernutzung mit dem Aktivitätsmonitor überwachen und prüfen, ob Sie feststellen können, wohin er geht.

Er sagte, das Terminalfenster sei offen, was bedeutet, dass der Prozess geladen wurde. Mike McQuaid vor 14 Jahren 0
@ Mike, ich bin nicht sicher, dass alles geladen ist, sobald das Terminalfenster angezeigt wird? Wenn das Obige jedoch für Terminal gilt, würde * jedes * Programm langsam starten. Ich glaube nicht, dass Terminal viele Ressourcen benötigt (6.5 / 31.7 real / virtual auf meinem Mac), also @pmaiorana: Wie viel Speicher benötigt Terminal auf Ihrem Mac? Arjan vor 14 Jahren 1
0
Ioannis Filippidis

Eine dauerhaftere Lösung durch Bearbeitung sudo vi /etc/asl.confvorgesehen ist hier .

0
davidcondrey

Öffne /etc/profileund füge die Zeile hinzu, PATH=""so dass es so aussieht:

if [ -x /usr/libexec/path_helper ]; then PATH="" eval `/usr/libexec/path_helper -s` fi