VS Code est un éditeur léger mais l'ajout de nombreuses extensions va affecter ses performances.
Voici quelques critères à vérifier avant d'installer une extension afin de s'assurer qu'elle est le meilleur choix.
-
La fonctionnalité est-elle disponible nativement dans VS Code
Au fur et à mesure des versions, de nombreuses fonctionnalités sont intégrées nativement dans VS Code. Par conséquent, de nombreuses extensions (certaines utilisées par des millions d'utilisateurs) ne sont plus nécessaires (voir documentation). -
Quand est-ce que l'extension est chargée ?
Voir Activation Events -
Les ressources sont-elles optimisées ?
Pour cela, il faut vérifier le fichierpackage.jsondans le code source pour voir si unbundlerest utilisé (voir si il y a une étape de pré-build dans la sectionscripts). L'extension de fichiervsixest une archive compressée du code source. On y retrouve souvent des fichiers non nécessaire ce qui impacte la taille mais surtout le temps d'activation de l'extension (notamment le chargement à froid, mais également le chargement à chaud).ℹ️ Le temps d'activation à froid correspond au temps du premier lancement de l'extension après installation.
-
L'extension est-elle connue pour avoir des problèmes de performance
Pour cela, il faut vérifier si des problèmes de performances sont remontés dans lesissuesdu repository git de l'extension -
L'extension est-elle activement maintenue ?
Voir l'historique du repository git
Les évènements d'activation sont définis dans le fichier package.json de l'extension et définissent les conditions de chargement/déchargement de l'extension.
Diagramme de Séquence lors du chargement de VS Code
L'évènement d'activation * activera l'extension au démarrage de VS Code. Une extension se déclenchant sur cet évènement impactera le temps de démarrage de VS Code.
La documentation donne le conseil suivant:
💡 To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.
L'extension sera activée après le démarrage de VS Code. C'est similaire à l'évènement *, mais ça ne ralentira le démarrage de VS Code.
L'extension sera activée sur l'ouverture d'un fichier dont le langage correspond à l'un des langages configurés.
"activationEvents": [
"onLanguage:json",
"onLanguage:markdown",
"onLanguage:typescript"
]L'extension sera activée sur l'ouverture d'un dossier qui contient au moins 1 fichier correspondant au pattern configuré.
"activationEvents": [
"workspaceContains:**/package.json"
]L'extension sera activée sur l'invocation d'une command.
"activationEvents": [
"onCommand:vscode-docker.compose.down",
"onCommand:vscode-docker.compose.restart",
"onCommand:vscode-docker.compose.up"
]La commande Developer: Show Running Extensions permet d'obtenir des statistiques sur les extensions actuellement chargées. Les extensions sont triées de celle ayant le temps d'activation le plus long à celle avec le plus court.
L'indication Startup Activation indique que l'extension est chargée au démarrage.
Si une extension présente des problèmes de performance importants, cette indication sera également mentionnée sous le nom de l'extension.
La commande Developer: Startup Performance permet d'auditer les performances du démarrage de VS Code.
Cette commande va ouvrir un fichier un fichier avec des stats détaillées sur différentes parties system info, performance marks, extension activation stats, loader stats for modules...
La section Extension Activation Stats permet d'obtenir une vue plus détaillée des performances des extensions et peut être très utile pour voir sur quel Activation Event se déclenche une extension sans avoir besoin de vérifier le code source.
- On peut désactiver une extension pour un workspace (projet). Ca permet de conserver l'extension installée mais qu'elle ne soit activée que dans le(s) projet(s) l'exploitant.
