Performance de démarrage
Ce qui détermine le temps qu'une sandbox met à servir sa première page, et comment accélérer la vôtre.
Le temps de démarrage est dominé par votre application, pas par l'environnement qui l'entoure. Comprendre cette répartition, c'est pouvoir agir dessus.
Les deux démarrages
Premier démarrage. Le projet n'a jamais tourné : les dépendances sont installées et votre framework construit sa sortie à partir de rien. C'est le cas le plus lent, et il n'arrive qu'une fois.
Démarrages suivants. Dépendances et caches de build sont déjà sur le stockage persistant : les deux étapes sont ignorées ou réduites à une reconstruction incrémentale. C'est ce que vous vivez au quotidien.
Où passe le temps
Par ordre de poids, sur un projet Node typique :
- Le démarrage de votre framework — chargement de l'environnement d'exécution et du framework, avant même que votre code soit compilé. C'est le plus gros coût fixe, et aucun réglage de la plateforme ne le change.
- La première compilation — construction de la route sur laquelle vous arrivez. Très dépendante de votre graphe de dépendances, puis mise en cache.
- L'installation des dépendances — au premier démarrage uniquement.
- L'environnement lui-même — démarrage de l'environnement isolé, rattachement du stockage, mise en place du point d'accès d'aperçu. Une part faible et à peu près constante.
Une fois la première page servie, la navigation dans votre application est quasi instantanée : les routes suivantes se compilent de façon incrémentale.
Accélérer votre projet
- Gardez un graphe de dépendances sobre. C'est le levier le plus puissant, et son effet se cumule sur l'installation, la compilation et le démarrage du framework.
- Utilisez le bundler le plus rapide de votre framework. Les valeurs par défaut récentes sont généralement bien plus rapides en reconstruction incrémentale ; vérifiez les notes de version plutôt que de traîner un ancien drapeau.
- Ne supprimez pas les caches de build. Ils sont conservés volontairement entre les sessions. Effacer le répertoire de cache de votre framework transforme chaque démarrage en premier démarrage.
- Évitez les traitements lourds au chargement des modules. Tout ce qui se trouve au niveau supérieur de votre point d'entrée s'exécute avant que la première page puisse être servie.
- Déclarez le bon port, pour que la plateforme détecte votre serveur dès qu'il écoute au lieu d'attendre une sonde.
Chiffres par framework
Les mesures pour chaque template sont en cours de collecte sur du matériel identique et seront publiées ici. Nous préférons laisser ce tableau vide plutôt que de le remplir d'estimations.