Gids voor ontwikkeling

Vind de prestatiemoordenaar

Prestatieoptimalisatie van onlinediensten is een bijna bijgelovige taak. Een groep programmeurs kreeg te maken met veel onbegrijpelijke code en raadde elkaar aan of de andere partij de hele CPU opgebruikte. Besteed veel tijd aan het opnemen van logs, het dag en nacht door enorme logs bladeren, in een poging de prestatiemoordenaar te vinden.

Als u fibjs gebruikt, wordt dit echter eenvoudig. Omdat fibjs krachtige CPU- en geheugenprofilerondersteuning heeft, en erg handig in gebruik is.

loggen

Het starten van de CPU-profiler in fibjs is uiterst eenvoudig, voeg gewoon opties toe bij het starten --prof. Het standaard loginterval is 1000 ms. Naarmate de optimalisatie zich verder verdiept, moet u logs met grotere nauwkeurigheid analyseren. In dit geval kunt u --prof-intervalhet interval instellen. In het volgende voorbeeld wordt het fibjs-werklogboek elke 10 ms vastgelegd.

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

Logboeken verwerken

Nadat de bewerking normaal is beëindigd of u ctrl_c gebruikt om het proces te beëindigen, wordt er een logbestand gegenereerd in de huidige map. De bestandsnaam is fibjs-xxxx.log. Op dit moment kunt u gebruiken --prof-processom het gegenereerde logbestand te verwerken:

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

Nadat de bewerking is voltooid, gebruikt u de browser om prof.svg te openen om de vlamgrafiek van dit logboek te bekijken: prof u kunt klikken om de afbeelding op volledige grootte te bekijken. In de afbeelding op volledige grootte kunt u de muis gebruiken om meer details te bekijken informatie: prof. svg .

Interpretatie van vlamdiagrammen

In de gegenereerde vlamgrafiek vertegenwoordigt elk kleurblok een opnamepunt. Hoe langer het kleurblok, hoe vaker het wordt opgenomen; elke lijn vertegenwoordigt een laag van de oproepstapel, en hoe meer lagen, hoe meer lagen worden aangeroepen; roept de stapel op wordt ondersteboven geplaatst. Hoe lager het kleurblok, hoe origineler de functie.

Er zijn twee soorten kleurblokken: de ene is rood en de andere is blauw. In de fibjs-profiler staat rood voor JavaScript-bewerkingen en blauw voor io-bewerkingen of native bewerkingen. Afhankelijk van het probleem dat u moet oplossen, zullen de gebieden waarop u zich moet concentreren variëren. Als u bijvoorbeeld het probleem van een hoog CPU-gebruik wilt oplossen, moet u op de rode kleurblokken letten. Als uw toepassing een laag CPU-gebruik maar een trage respons heeft, moet u op de blauwe kleurblokken letten. Hoe groter het kleurblok bovenaan, hoe meer aandacht en optimalisatie het nodig heeft.

👉【Synchroon en asynchroon