163 votes

oh-my-zsh lent, mais seulement pour certains repo Git

J'ai récemment commencé à utiliser Zsh et c'est génial. Malheureusement, pour le projet que je considère comme mon projet "principal", tout est lent. Ce que je veux dire, c'est qu'à chaque fois que je lance une commande - ls Il y a un délai d'environ cinq secondes entre le moment où la commande est exécutée et le moment où je peux à nouveau utiliser le terminal.

Qu'est-ce qui pourrait être différent dans ce repo qui rend Zsh si lent ? Je suppose que c'est un truc spécifique à Zsh car il n'y avait pas de problème avant que je commence à utiliser Zsh. J'ai essayé de faire un git clean mais ça n'a pas fait de différence notable.

Je suis sur Mac OS X si cela compte.

Mise à jour : Il s'avère que cette ligne de mon .zshenv est ce qui le rendait lent :

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

Si je commente cette ligne, le processus passe d'environ 3 secondes à environ 1 seconde. Malheureusement, j'ai besoin de cette ligne, car plusieurs de mes projets utilisent RVM. Je ne sais pas quoi faire maintenant.

Mise à jour 2 Il semble que ce soit spécifiquement un truc de oh-my-zsh. Si je ne charge pas ~/.oh-my-zsh/oh-my-zsh.sh je n'ai pas de problème.

0voto

Ali Havasi Points 151

J'ai eu le même problème. J'ai lancé la commande suivante pour obtenir une liste de tous les thèmes qui n'utilisent pas de plugin git codé en dur :

grep --files-without-match "git" ~/.oh-my-zsh/themes/*

Les messages sont devenus beaucoup plus rapides, mais je n'ai aimé aucun de ces thèmes.

J'ai fini par utiliser powerline10k, qui peut être configuré pour avoir une belle apparence et qui n'a pas de problème de vitesse.

0voto

XXY Points 26

Je voulais conserver mon statut git, donc toutes les autres réponses ne m'ont pas été utiles.

La chose qui m'a vraiment aidé est d'exécuter cette commande dans le dépôt git qui était lent pour moi :

git gc

Il s'agit de l'abréviation de Garbage Collect (collecte des déchets) et il est expliqué en détail aquí mais en gros :

[Il] exécute un certain nombre de tâches ménagères dans le référentiel actuel, telles que la compression des révisions de fichiers (pour réduire l'espace disque et augmenter les performances).

Après avoir exécuté cette commande, il n'y avait plus de chargement. Tout était à nouveau instantané.

0voto

Eric Riff Points 31

La solution supérieure propose

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

Ce qui fonctionne mais désactive certaines fonctionnalités intéressantes comme le nom de la branche et la saleté. Pour moi, ce qui a fonctionné, c'est de compresser la base de données de git mais en utilisant l'option aggressive drapeau :

git gc --aggressive

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X