Leitfaden Entwicklungshandbuch

Finden Sie den Performance-Killer heraus

Die Optimierung der Leistung von Online-Diensten ist eine fast abergläubische Aufgabe. Eine Gruppe von Programmierern sah sich mit viel unverständlichem Code konfrontiert und vermutete miteinander, ob die andere Partei die CPU verwendet hatte. Verbringen Sie viel Zeit damit, Protokolle aufzuzeichnen, gehen Sie rund um die Uhr in massiven Protokollen und versuchen Sie, einen Leistungskiller zu finden.

Mit Fibjs wird dies alles jedoch einfach. Weil fibjs eine leistungsstarke CPU- und Speicherprofiler-Unterstützung bietet und sehr einfach zu bedienen ist.

Protokoll aufzeichnen

Das Starten des CPU-Profilers ist sehr einfach. Sie können die Option --prof beim Start hinzufügen. Das Standardprotokollintervall beträgt 1000 ms. Im Verlauf der Optimierung müssen Sie Protokolle 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 oder der Prozess mit ctrl_c beendet wurde, wird im aktuellen Verzeichnis eine Protokolldatei mit dem Dateinamen 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

Öffnen Sie am Ende des Laufs prof.svg mit einem Browser, um das Flammendiagramm dieses Protokolls anzuzeigen: 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 .

Flammendiagramminterpretation

In der generierten Flammenkarte stellt jeder Farbblock einen Aufzeichnungspunkt dar. Je länger der Farbblock ist, desto öfter wird er aufgezeichnet. Jede Zeile stellt einen Aufrufstapel dar. Je mehr Ebenen, desto mehr Anrufschichten. 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 Profiler von fibjs 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 hohen CPU-Auslastung lösen müssen, müssen Sie auf die roten Farbblöcke achten. Wenn Ihre Anwendung keine hohe CPU-Auslastung aufweist, die Antwort jedoch langsam ist, müssen Sie auf die blauen Farbblöcke achten. Je größer der Farbfleck oben ist, desto wichtiger ist die Fokussierung und Optimierung.