Leitfaden Entwicklungshandbuch

Finden Sie den Performance-Killer heraus

Die Optimierung der Leistung von Online-Diensten ist nahezu Aberglaube. Eine Gruppe von Programmierern sieht sich mit viel unverständlichem Code konfrontiert und errät, ob sie die CPU verwenden. Verbringen Sie viel Zeit damit, Protokolle aufzuzeichnen, sie Tag und Nacht in massiven Protokollen zu betrachten und zu versuchen, einen Leistungskiller zu finden.

Mit Fibjs wird dies jedoch alles einfach. Weil fibjs eine starke Unterstützung für CPU- und Speicherprofiler bietet und sehr bequem zu verwenden ist.

Protokoll

Fibjs ist sehr einfach zu starten. --prof beim Starten einfach die Option --prof . Das Standardprotokollintervall beträgt 1000 ms. Mit der Vertiefung der Optimierung müssen Sie das Protokoll mit höherer Genauigkeit analysieren. Zu diesem Zeitpunkt können Sie das Intervall mit --prof-interval festlegen. Im folgenden Beispiel wird das Arbeitsprotokoll von fibjs alle 10 ms aufgezeichnet.

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

Protokolle verarbeiten

Nachdem der Vorgang normal beendet wurde oder nachdem der Prozess mit ctrl_c beendet wurde, wird eine Protokolldatei im aktuellen Verzeichnis generiert. Der Dateiname lautet fibjs-xxxx.log . Zu diesem Zeitpunkt können Sie das generierte Protokoll mit --prof-process verarbeiten:

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

Verwenden Sie am Ende des Laufs einen Browser, um prof.svg zu öffnen. Sie können das Flammendiagramm dieses Protokolls anzeigen: prof Sie können klicken, um das Bild in voller Größe anzuzeigen. Im Bild in voller Größe können Sie mit der Maus detailliertere Informationen anzeigen : prof.svg .

Interpretation der Flammenkarte

In dem erzeugten Flammengraphen stellt jeder Farbblock einen Aufzeichnungspunkt dar. Je länger der Farbblock ist, desto öfter wird er aufgezeichnet, jede Zeile stellt eine Schicht des Aufrufstapels dar und je mehr Schichten, desto mehr Schichten werden aufgerufen Der Stapel wird verkehrt herum platziert. Je niedriger der Farbblock, desto mehr die ursprüngliche Funktion.

Es gibt zwei Arten von Farbblöcken: einen roten und einen blauen. Im Fibjs-Profiler steht Rot für JavaScript-Operationen und Blau für Io-Operationen oder native Operationen. Je nachdem, welches Problem Sie lösen müssen, ist der Bereich, auf den Sie sich konzentrieren müssen, unterschiedlich. Wenn Sie beispielsweise das Problem der übermäßigen CPU-Auslastung lösen müssen, müssen Sie auf den roten Farbblock achten. Wenn Ihre Anwendung eine geringe CPU-Auslastung aufweist, die Reaktion jedoch langsam ist, müssen Sie auf den blauen Farbblock achten. Je größer der Farbblock oben ist, desto wichtiger ist es, sich darauf zu konzentrieren und zu optimieren.