Szukaj…


Wprowadzenie

Celem tego postu jest rozpoczęcie pracy z profilowaniem aplikacji nodejs i wyjaśnienie, w jaki sposób można uchwycić błąd lub wyciek pamięci. Uruchomiona aplikacja nodejs to nic innego jak procesy silnika v8, które pod wieloma względami są podobne do strony internetowej działającej w przeglądarce i możemy w zasadzie uchwycić wszystkie metryki związane z procesem strony internetowej dla aplikacji węzłowej.

Moim preferowanym narzędziem jest chrome devtools lub chrome inspector w połączeniu z node-inspector.

Uwagi

Inspektor węzłów czasami nie dołącza się do procesu bebug węzła, w którym to przypadku nie będzie można uzyskać punktu przerwania debugowania w devtools. Spróbuj kilkakrotnie odświeżyć kartę devtools i poczekaj kilka sekund, aby sprawdzić, czy jest w trybie debugowania.

Jeśli nie, zrestartuj węzła-inspektora z wiersza poleceń.

Profilowanie prostej aplikacji węzłowej

Krok 1 : Zainstaluj pakiet węzła inspektora za pomocą npm globalnie na twoim komputerze

$ npm install -g node-inspector

Krok 2 : Uruchom serwer inspektora węzłów

$ node-inspector

Krok 3 : Rozpocznij debugowanie aplikacji węzła

$ node --debug-brk your/short/node/script.js

Krok 4 : Otwórz http://127.0.0.1:8080/?port=5858 w przeglądarce Chrome. W lewym panelu zobaczysz interfejs narzędziowy chrom-dev z kodem źródłowym aplikacji nodejs. A ponieważ podczas debugowania aplikacji użyliśmy opcji przerwania debugowania, wykonanie kodu zatrzyma się w pierwszym wierszu kodu.

wprowadź opis zdjęcia tutaj

Krok 5 : Jest to łatwa część, w której przełączasz się na kartę profilowania i rozpoczynasz profilowanie aplikacji. Jeśli chcesz uzyskać profil dla określonej metody lub przepływu, upewnij się, że wykonanie kodu jest przerywane tuż przed wykonaniem tego fragmentu kodu.

wprowadź opis zdjęcia tutaj

Krok 6 : Po zarejestrowaniu profilu procesora lub zrzutu sterty / migawki lub przydziału sterty możesz następnie wyświetlić wyniki w tym samym oknie lub zapisać je na dysku lokalnym w celu późniejszej analizy lub porównania z innymi profilami.

Możesz użyć tych artykułów, aby dowiedzieć się, jak czytać profile:



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow