Pour ceux qui arrivent à la conclusion que les temps de démarrage pour les nouveaux shells sur MacOS sont trop lents pour eux, c'est la solution .
Je viens de découvrir qu'il existe en fait deux packages qui peuvent être installés via brew
. J'installe le bash-completion
package depuis des années, et je n'ai jamais pris la peine de le remettre en question, même si, à cette époque, je suis passé de Bash 3, à 4, jusqu'à maintenant 5. De temps en temps, cependant, je revisiterais le problème , tombant souvent sur cette discussion très StackOverflow.
Il y a un autre package bash-completion@2
,!
Quelle est la différence? bash-completion
est pour Bash version 3.2. bash-completion@2
est pour Bash version 4.1+ et 5.
En supprimant l'ancien bash-completion
package et en installant bash-completion@2
, mes temps de démarrage du shell sont passés de 605 ms à 244 ms. C'est une énorme amélioration de la vitesse.
Je soupçonne que beaucoup d'entre nous font la même erreur, car les brew info
statistiques montrent que le premier a des tonnes d'installations, tandis que le second en a si peu:
Il convient de noter que la réponse actuellement choisie mentionne commenter certaines lignes, ce qui n'améliore que légèrement les temps de démarrage (si vous utilisez l'ancien bash-completion
package, ce que beaucoup sont probablement), mais n'a aucun impact sur le nouveau bash-completion@2
package: ce nouveau package est rapide quoi qu'il arrive. Cela signifie qu'aucun piratage n'est requis.
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
N'oubliez pas de mettre à jour le chemin source vers le fichier d'achèvement dans votre fichier .bashrc
ou .bash_profile
.
Sources:
En tant que sujet quelque peu lié, j'utilise rclone
beaucoup l' utilitaire, il est donc installé. Il se trouve également que le fichier d'achèvement le plus volumineux que j'ai jamais vu . Le supprimer réduit le temps de démarrage de mon shell à ~ 120 ms, ce qui est très rapide.
Éditer:
Pour tous ceux qui veulent les détails techniques qui expliquent ce problème, j'ai longuement écrit à ce sujet sur les forums Homebrew . Pour résumer, la raison pour laquelle cela bash-completion@2
est beaucoup plus rapide est qu'il a été écrit de manière à ne plus charger tous les fichiers d'achèvement avec impatience ; au lieu de cela, il charge un fichier d'achèvement à la demande, ou comme l'auteur le décrit, il les charge de manière non désireuse .