Leitfaden zur Leitfadenentwicklung

Finden Sie den Leistungskiller

Die Leistungsoptimierung von Online-Diensten ist eine fast abergläubische Aufgabe. Eine Gruppe von Programmierern sah sich einer Menge unverständlichem Code gegenüber und erriet gegenseitig, ob die andere Partei die gesamte CPU verbrauchte. Verbringen Sie viel Zeit damit, Protokolle aufzuzeichnen, durchsuchen Sie Tag und Nacht riesige Protokolle und versuchen Sie, den Leistungskiller zu finden.

Mit fibjs wird dies jedoch einfacher. Weil fibjs über eine leistungsstarke CPU- und Speicherprofiler-Unterstützung verfügt und sehr bequem zu verwenden ist.

Protokollierung

Das Starten des CPU-Profilers in fibjs ist äußerst einfach. Fügen Sie beim Starten einfach Optionen hinzu --prof. Das Standardprotokollintervall beträgt 1000 ms. Mit zunehmender Optimierung müssen Sie Protokolle mit höherer Präzision analysieren. In diesem Fall können Sie --prof-intervaldas Intervall mithilfe von festlegen. Das folgende Beispiel zeichnet das fibjs-Arbeitsprotokoll alle 10 ms auf.

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

Protokolle werden verarbeitet

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

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

Nachdem der Vorgang abgeschlossen ist, öffnen Sie prof.svg mit dem Browser, um das Flammendiagramm dieses Protokolls anzuzeigen: Prof Sie können darauf klicken, um das Bild in voller Größe anzuzeigen. Im Bild in voller Größe können Sie die Maus bedienen, um detailliertere Informationen anzuzeigen Informationen: Prof. SVG .

Interpretation des Flammendiagramms

Im generierten Flammendiagramm stellt jeder Farbblock einen Aufzeichnungspunkt dar. Je länger der Farbblock ist, desto öfter wird er aufgezeichnet. Jede Zeile stellt eine Ebene des Aufrufstapels dar. Je mehr Ebenen, desto mehr Ebenen werden aufgerufen. Der Stapel wird aufgerufen wird auf den Kopf gestellt. Je niedriger der Farbblock, desto origineller die Funktion.

Es gibt zwei Arten von Farbblöcken: einer ist rot und der andere blau. Im fibjs-Profiler steht Rot für JavaScript-Operationen und Blau für IO-Operationen oder native Operationen. Abhängig von dem Problem, das Sie lösen müssen, variieren die Bereiche, auf die Sie sich konzentrieren müssen. Wenn Sie beispielsweise das Problem einer hohen CPU-Auslastung lösen müssen, müssen Sie auf die roten Farbblöcke achten. Wenn Ihre Anwendung eine geringe CPU-Auslastung, aber eine langsame Reaktion aufweist, müssen Sie auf die blauen Farbblöcke achten. Je größer der Farbblock im oberen Bereich ist, desto mehr Aufmerksamkeit und Optimierung erfordert er.

👉【Synchron und Asynchron