Leitfaden-Entwicklungsleitfaden

Finde den Leistungskiller

Die Leistungsoptimierung von Online-Diensten ist fast abergläubisch. Eine Gruppe von Programmierern sah sich mit einer großen Menge unverständlichen Codes konfrontiert und erriet, ob die andere Partei die gesamte CPU nutzte. Verbringen Sie viel Zeit damit, Protokolle aufzuzeichnen, Tag und Nacht durch die riesigen Protokolle zu blättern und zu versuchen, den Leistungskiller zu finden.

Mit fibjs wird dies jedoch alles einfacher. Weil fibjs leistungsstarke CPU- und Memory-Profiler-Unterstützung bietet und sehr bequem zu verwenden ist.

Log

fibjs start cpu Profiler ist extrem einfach, Startoption erhöhen --prof. Das Standardprotokollierungsintervall beträgt 1000 ms. Bei eingehender Optimierung benötigen Sie eine genauere Analyse des Protokolls, dann können Sie das --prof-intervaleingestellte Intervall verwenden. Das folgende Beispiel zeichnet das Arbeitsprotokoll von fibjs alle 10 ms auf.

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

Verarbeitungsprotokoll

Nach dem Ende des normalen Betriebs, oder verwenden Sie ctrl_c Ende des Prozesses, wird das aktuelle Verzeichnis eine Protokolldatei generieren, der Dateiname ist fibjs-xxxx.logzu diesem Zeitpunkt können Sie die --prof-processgenerierte Protokollverarbeitung verwenden:

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

Verwenden Sie nach dem Ausführen den Browser, um prof.svg zu öffnen. Sie können die Flammenkarte dieses Protokolls prof anzeigen : Sie können auf klicken, um das Bild in voller Größe anzuzeigen, im Bild in voller Größe können Sie die Maus verwenden, um detailliertere Informationen zu überprüfen : Prof. svg .

Interpretation der Flammenkarte

Im erzeugten Flammendiagramm stellt jeder Farbblock einen Aufnahmepunkt dar. Je länger der Farbblock, desto öfter wurde er aufgezeichnet; jede Zeile stellt eine Ebene des Aufrufstapels dar und je mehr Ebenen, desto mehr Ebenen werden aufgerufen. Der Stapel auf den Kopf gestellt wird, je niedriger der Farbblock, desto mehr die ursprüngliche Funktion.

Es gibt zwei Arten von Farbblöcken, einer ist rot und der andere ist blau. 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 zu diesem Zeitpunkt auf den roten Farbblock achten; und wenn Ihre Anwendung die CPU-Auslastung nicht hoch ist, aber die Reaktion langsam ist, müssen Sie Achten Sie auf den blauen Farbblock. Je größer der Farbblock im oberen Bereich ist, desto wichtiger ist es, ihn zu berücksichtigen und zu optimieren.

👉 [ Schnelle Entwicklung von Desktop-Anwendungen ]