Node.js
Komma igång med noderprofilering
Sök…
Introduktion
Syftet med det här inlägget är att komma igång med att profilera nodejs-applikation och hur man kan förstå detta resultat för att fånga ett fel eller ett minnesläckage. En nodejs-körande applikation är inget annat än en v8-motor som processar som i många termer liknar en webbplats som körs i en webbläsare och vi kan i princip fånga alla mätvärden som är relaterade till en webbplatsprocess för en nodapplikation.
Verktyget som jag föredrar är kromutrustning eller krominspektör i kombination med nodinspektören.
Anmärkningar
Nodinspektören misslyckas med att ansluta sig till node bebug-processen ibland, i vilket fall kommer du inte att kunna felsöka brytpunkten i devtools. Försök att uppdatera fliken devtools flera gånger och vänta några sekunder för att se om den är i felsökningsläge.
Om inte starta om nod-inspektören från kommandoraden.
Profilering av en enkel nodapplikation
Steg 1 : Installera nod-inspektörspaketet med hjälp av npm globalt på din maskin
$ npm install -g node-inspector
Steg 2 : Starta nodinspektionsservern
$ node-inspector
Steg 3 : Börja felsöka din nodapplikation
$ node --debug-brk your/short/node/script.js
Steg 4 : Öppna http://127.0.0.1:8080/?port=5858 i Chrome-webbläsaren. Och du kommer att se ett chrom-dev-verktygsgränssnitt med din nodejs-applikationskällkod i vänster panel. Och eftersom vi har använt felsökningsalternativet vid felsökning av applikationen kommer kodutförandet att stanna vid den första raden i koden.
Steg 5 : Det här är den enkla delen där du byter till profileringsfliken och börjar profilera applikationen. Om du vill hämta profilen för en viss metod eller flöde, se till att kodutförandet är uppdelat precis innan den kodkoden körs.
Steg 6 : När du har registrerat din CPU-profil eller heap dump / snapshot eller tilldelning av heap kan du sedan se resultaten i samma fönster eller spara dem på lokal enhet för senare analys eller jämförelse med andra profiler.
Du kan använda dessa artiklar för att veta hur du läser profilerna: