Guide de développement du guide

Découvrez le tueur de performance

L'optimisation des performances des services en ligne est une quasi superstition. Un groupe de programmeurs fait face à beaucoup de code inintelligible et devine s'ils utilisent le CPU. Passez beaucoup de temps à enregistrer des journaux, à les regarder jour et nuit dans des journaux massifs, à essayer de trouver un tueur de performances.

Cependant, avec fibjs, tout cela deviendra simple. Parce que fibjs a une forte prise en charge du processeur et de la mémoire du profileur, et il est très pratique à utiliser.

Journal

Fibjs est très simple pour démarrer le profileur cpu, il suffit d'ajouter l'option --prof au démarrage. L'intervalle de journal par défaut est de 1000 ms. Avec l'approfondissement de l'optimisation, vous devrez analyser le journal avec une plus grande précision. À ce --prof-interval , vous pouvez utiliser --prof-interval définir l'intervalle. Dans l'exemple suivant, le journal de travail fibjs est enregistré toutes les 10 ms.

1
fibjs --prof --prof-interval=10 main.js

Traitement des journaux

Une fois l'opération terminée normalement ou après la fin du processus avec ctrl_c, un fichier journal sera généré dans le répertoire en cours et le nom du fichier est fibjs-xxxx.log . À ce fibjs-xxxx.log , vous pouvez utiliser --prof-process traiter le journal généré:

1
fibjs --prof-process fibjs-xxxx.log prof.svg

À la fin de la course, utilisez un navigateur pour ouvrir prof.svg, vous pouvez voir le graphique des flammes de ce journal: prof Vous pouvez cliquer pour afficher l'image en taille réelle. Dans l'image en taille réelle, vous pouvez utiliser la souris pour afficher des informations plus détaillées: prof.svg .

Interprétation du graphique des flammes

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é; chaque ligne représente une couche de la pile d'appels. Plus il y a de couches, plus il y a de couches d'appels; l'appel La pile est placée à l'envers, plus le bloc de couleur est bas, plus la fonction d'origine est importante.

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. Selon le problème que vous devez résoudre, la zone sur laquelle vous devez vous concentrer sera également différente. Par exemple, si vous devez résoudre le problème d'une utilisation élevée du processeur, vous devez faire attention au bloc de couleur rouge; si votre application a une faible utilisation du processeur, mais la réponse est lente, vous devez faire attention au bloc de couleur bleu. Plus le bloc de couleur est grand près du sommet, plus il est important de se concentrer et d'optimiser.