Trouvez le tueur de performances
L'optimisation des performances des services en ligne est une tâche presque superstitieuse. Un groupe de programmeurs a été confronté à beaucoup de code incompréhensible et s'est demandé si l'autre partie utilisait tout le processeur. Passez beaucoup de temps à enregistrer des journaux, à parcourir d'énormes journaux jour et nuit, à essayer de trouver le tueur de performances.
Cependant, en utilisant fibjs, cela deviendra facile. Parce que fibjs prend en charge un puissant processeur et un profileur de mémoire, et il est très pratique à utiliser.
enregistrement
Démarrer le profileur de processeur dans fibjs est extrêmement simple, il suffit d'ajouter des options lors du démarrage de --prof
. L'intervalle de journalisation par défaut est de 1 000 ms. À mesure que l'optimisation s'approfondit, vous devrez analyser les journaux avec une plus grande précision. Dans ce cas, vous pouvez utiliser pour --prof-interval
définir l'intervalle. L'exemple suivant enregistre le journal de travail fibjs toutes les 10 ms.
1fibjs --prof --prof-interval=10 main.js
Journaux de traitement
Une fois l'opération terminée normalement, ou si vous utilisez ctrl_c pour terminer le processus, un fichier journal sera généré dans le répertoire actuel. Le nom du fichier est fibjs-xxxx.log
. À ce stade, vous pouvez utiliser --prof-process
pour traiter le journal généré :
1fibjs --prof-process fibjs-xxxx.log prof.svg
Une fois l'opération terminée, utilisez le navigateur pour ouvrir prof.svg afin de visualiser le graphique de flamme de ce journal : vous pouvez cliquer pour voir l'image en taille réelle. Dans l'image en taille réelle, vous pouvez utiliser la souris pour voir plus de détails. renseignements : prof.svg .
Interprétation du diagramme de flamme
Dans le graphique de flamme généré, chaque bloc de couleur représente un point d'enregistrement. Plus le bloc de couleur est long, plus il est enregistré de fois ; chaque ligne représente une couche de pile d'appels, et plus il y a de couches, plus de couches sont appelées ; appels La pile est placé à l’envers : plus le bloc de couleur est bas, plus la fonction est originale.
Il existe deux types de blocs de couleur, l’un est rouge et l’autre bleu. Dans le profileur fibjs, le rouge représente les opérations JavaScript et le bleu représente les opérations io ou les opérations natives. En fonction du problème que vous devez résoudre, les domaines sur lesquels vous devez vous concentrer varient. Par exemple, si vous devez résoudre le problème d'une utilisation élevée du processeur, vous devez faire attention aux blocs de couleur rouge. Si votre application a une faible utilisation du processeur mais une réponse lente, vous devez faire attention aux blocs de couleur bleus. Plus le bloc de couleur près du haut est grand, plus il nécessite d’attention et d’optimisation.