- Oh My Zsh (OMZ) reste largement recommandé, mais entraîne une surcharge de scripts inutile qui ralentit le démarrage du shell
- OMZ étant écrit en scripts shell, tous les scripts doivent être interprétés à chaque ouverture d’un nouvel onglet de terminal, ce qui provoque environ 0,38 seconde de latence même avec la configuration par défaut
- Avec une configuration minimale de Zsh, le prompt Starship et une recherche dans l’historique basée sur
fzf, il est possible de ramener le temps de démarrage à 0,07 seconde
- Starship construit le prompt à partir d’un binaire unique, remplaçant ainsi les plugins git, environnement virtuel et spécifiques aux langages habituellement fournis par OMZ
- Plutôt que des plugins complexes, une configuration de shell allégée où l’on ajoute soi-même uniquement les fonctions nécessaires est plus efficace
Problèmes de performances d’Oh My Zsh
- Oh My Zsh (OMZ) reste très utilisé, mais sa surcharge inutile (bloat) dégrade la vitesse de démarrage du shell
- OMZ est composé de scripts shell, qui doivent tous être interprétés à chaque ouverture d’un nouvel onglet de terminal
- Avec une configuration incluant les plugins de base (
git, zsh-autosuggestions, zsh-autocomplete), l’exécution de /usr/bin/time -f "%e seconds" zsh -i -c exit prend 0,38 seconde
- Ouvrir un nouvel onglet dans un dossier de dépôt git entraîne une latence ressentie d’environ 1 seconde
- OMZ vérifie périodiquement les mises à jour, ce qui peut ajouter plusieurs secondes de latence
- Mettre à jour fréquemment sa configuration shell est inutile ; il est recommandé d’opter pour une configuration simple où l’on ajoute directement uniquement ce dont on a besoin
Configuration minimale de Zsh
Personnalisation du prompt
Recherche dans l’historique
- Le plugin
zsh-autosuggestions, souvent utilisé, peut distraire l’attention en affichant des suggestions pendant la saisie
- À la place, il est proposé d’associer fzf à
Ctrl+R pour parcourir l’historique avec une recherche fuzzy interactive
source <(fzf --zsh)
Résultats en matière de performances
Astuce supplémentaire
Conclusion et cas d’usage
- Après avoir quitté OMZ, l’auteur s’est adapté au nouveau workflow en quelques jours
- Les plugins nécessaires peuvent être chargés manuellement
- S’il ouvre de nombreux onglets, c’est parce qu’il utilise tmux et un éditeur en terminal (helix) ensemble
- Dans tmux, il lance
lazygit et le gestionnaire de fichiers yazi sous forme de popups
- Il utilise aussi des volets temporaires pour exécuter du code et afficher les sorties de test, chacun fonctionnant comme une session shell distincte
Résumé des commentaires
- Certains utilisateurs affirment que le temps de démarrage d’OMZ, autour de 0,03 seconde, est déjà largement suffisant
- L’auteur souligne que le plugin
zsh-autocomplete dégrade les performances
- Dans les résultats de
zsh-bench, le délai jusqu’au premier prompt est mesuré à 603 ms pour OMZ, contre 103 ms pour une simple configuration Zsh
- Starship remplace les fonctionnalités de prompt d’OMZ avec un seul outil
- D’autres utilisateurs citent comme alternatives Zimfw, Atuin ou encore un prompt bash écrit à la main
Aucun commentaire pour le moment.