web-dev-qa-db-fra.com

zsh commence incroyablement lentement

Il faut environ une seconde et demie à ZSH pour créer une nouvelle fenêtre de terminal et être prêt. Je suis à peu près sûr que le coupable est compinit.

Je n'ai pas réussi à trouver une bonne documentation sur compinit,, mais il semblerait qu'il faille mettre en cache tous les éléments nécessaires dans un fichier tel que .zcompdump.

Des astuces pour l'accélérer?

61
Eli

oh-my-zsh prenait environ 1,5 seconde pour démarrer sur mon ordinateur portable. J'ai écrit certaines des mesures que j'ai prises pour réduire le temps à environ 0,25 seconde .

Une autre bonne âme a résumé les étapes nécessaires pour intégrer mes modifications dans votre copie de oh-my-zsh.

Le plus gros problème est que compinit était appelé un tas de temps supplémentaires au lieu d'une seule fois après que le fpath ait été complètement défini. J'ai apporté ces modifications sur ma branche de oh-my-zsh sur github. Les changements ont été discutés sur github et ils semblent bien fonctionner pour quelques personnes. Espérons que les modifications seront fusionnées dans oh-my-zsh dans un proche avenir.

33
Pat Regan

Bien que ZSH ait son lot de ralentissements, si vous trouvez la fenêtre du terminal vierge pendant quelques instants avant de voir la ligne Last Login:, vous devrez effacer vos fichiers journaux pour améliorer la vitesse. Cela reste un problème pour OSX Lion et devra être fait tous les plusieurs mois. Lame, je sais.

La commande est:

Sudo rm -rf /private/var/log/asl/*.asl

Bien sûr, vous avez besoin de lire cet article à l'avance et vous savez donc exactement ce qui se passe, parce que tout ce qui dit Sudo rm doit être pensé. Je ne mets cela que ici parce que votre utilisation de ZSH prouve votre compétence avec la ligne de commande pour commencer.

24
kylehotchkiss

Ma plus grande amélioration provient de la suppression d'éléments de la section plugin = (). Les plugins 'github' et 'brew' sont très lents à charger.

J'ai également supprimé hub que j'avais comme alias Algitet qui accélérait également l'invite.

J'ai utilisé '/ usr/bin/time zsh -i -c exit' pour enregistrer les temps de démarrage, mais compinit ne semble pas faire une différence assez importante pour moi.

Ce serait formidable d'entendre ce que les autres font pour accélérer les choses.

12
xer0x

Utilisez-vous le /bin/zsh pré-installé ou un autre? Je demande, parce que le zsh que j'ai installé via fink commence terriblement lentement à cause de son inclusion de modèles zsh , tandis que la vanille démarre tout de suite.

Est-ce que courir avec un fichier de vidage explicite (compinit -d dumpfile) accélère le processus? La page de manuel indique que

Le prochain appel de compinit lira le fichier vidé au lieu d’effectuer une initialisation complète.

6
Joey1978

Zsh seul démarre en environ 0,1 seconde pour moi, ce qui est amplement suffisant. Je viens de remarquer que lorsque je me rapprochais de la marque de l'historique des commandes 50 000, le chargement de la première invite devenait plus proche de 3 secondes.

Je ne sais pas comment vous trouvez toutes ces autres raisons de la lenteur du démarrage, mais la mienne était exactement ce que je devinais au départ. J'ai fait un mv ~/.zsh_history zsh_history_backup et bam, le démarrage de 3 secondes est maintenant un démarrage de 0,1 seconde. Curieusement, /usr/bin/time /bin/zsh -i -c exit ne parvient pas à capturer le temps nécessaire au chargement de l'historique.

Si vous n'avez pas des dizaines de milliers de commandes dans votre historique zsh, ce n'est pas ça. Mon ~/.zsh_history mesuré 1,8MB. Il est tout à fait possible de coller accidentellement un gros morceau de contenu en tant que commande dans un terminal. Cela va également gonfler l’historique rapidement (bien que ce soit quelque chose de vraiment à éviter, car il peut évidemment être extrêmement destructeur).

5
Steven Lu

Maintenant, oh-my-zsh vérifie l'option de configuration spéciale de git oh-my-zsh.hide-status avant de demander le statut. Donc courir

git config oh-my-zsh.hide-status 1

sur un dépôt problématique.

5
Artem Tikhomirov

J'utilisais le thème "af-magic"

Passer à "muse" a résolu le problème.

Éditez ~/.zshrc et modifiez cette ligne:

#ZSH_THEME="random"
#ZSH_THEME="af-magic"
ZSH_THEME="muse"
1
mika

Ajoutez ce qui suit à votre ~/.zshenv

skip_global_compinit=1
0
FacePalm

J'ai vraiment amélioré ma vitesse après avoir effacé le répertoire ~/.oh-my-zsh/plugins /. Il y avait beaucoup de plugins inutilisés à l'intérieur.

0
pinguinjkeke