Wenn ich ein neues Terminal öffne, dauert es ein paar Sekunden, bis die Shell geladen ist. Wenn ich in tmux einen neuen Bereich oder ein neues Fenster öffne, kann es sogar eine Sekunde länger dauern. Die Verzögerung beträgt etwa 3 Sekunden.
Ich verwende zsh mit oh-my-zsh und den ohmyzsh-Plugins: git, vi-mode, history-substring-search.
Mein Weg sieht so aus:
/home/alec/.nvm/versions/node/v14.6.0/bin:/home/alec/.composer/vendor/bin:/home/alec/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/alec/code/bin
Zuvor hatte ich mich gefragt, ob es problematisch wäre, ein Git-Repository auf dem Pfad zu haben. Der letzte Speicherort in diesem Pfad ~/code/bin
war früher ~/bin
und darin befand sich die .git
Datenbank. Jetzt ist das .git
Verzeichnis in ~/code
(was meiner Meinung nach die Shell daran hindern würde, es nach ausführbaren Dateien zu durchsuchen), aber dies hat keine Leistungsverbesserungen gebracht.
Ich kenne keine anderen Möglichkeiten zum Raten und Prüfen oder logische Verfahren zur Fehlerbehebung, die ich durchführen/untersuchen könnte.
Irgendwelche Vorschläge?
Antwort1
Fügen Sie: set -x
am Anfang und set +x
am Ende hinzu, ~.zshrc
um eine ausführliche Ausgabe darüber zu erhalten, was beim Shell-Start ausgeführt wird. (Es ist hilfreich, diese Datei während des gesamten Debug-Prozesses in einem separaten Fenster/Terminal/Editor geöffnet zu lassen.)
Es kann schwierig sein, bei all diesen Ausgaben zu erkennen, was richtig und was problematisch ist. Wenn Ihnen jedoch etwas auffällt, das Sie wiedererkennen, ist das ein guter Ausgangspunkt. In meinem Fall gab es viele Zeilen über nvm
den „Knotenversionsmanager“. Durch das Deaktivieren der nvm
Zeilen in meiner .zshrc
Datei werden zwei Sekunden beim Shell-Start eingespart!
nvm
Um die Leistung ohne Leistungseinbußen zu nutzen ,https://www.ioannispoulakas.com/2020/02/22/how-to-speed-up-shell-load-while-using-nvm/schlägt einige mögliche Lösungen vor.