Guía de desenvolvemento da guía

Atopar o asasino do rendemento

A optimización do rendemento dos servizos en liña é unha tarefa case supersticiosa. Un grupo de programadores enfrontouse a moito código incomprensible e adiviñaron se a outra parte estaba a usar toda a CPU. Pasa moito tempo gravando rexistros, mirando a través de rexistros masivos día e noite, intentando atopar o asasino do rendemento.

Non obstante, usando fibjs, isto será doado. Porque fibjs ten un poderoso soporte de CPU e perfilador de memoria, e é moi cómodo de usar.

rexistro

Iniciar o perfilador da CPU en fibjs é moi sinxelo, só tes que engadir opcións ao iniciar --prof. O intervalo de rexistro predeterminado é de 1000 ms. A medida que a optimización se afonda, terás que analizar os rexistros con maior precisión. Neste caso, podes usar para --prof-intervalestablecer o intervalo. O seguinte exemplo rexistra o rexistro de traballo fibjs cada 10 ms.

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

Procesando rexistros

Despois de que a operación remate normalmente, ou de usar ctrl_c para finalizar o proceso, xerarase un ficheiro de rexistro no directorio actual. O nome do ficheiro é fibjs-xxxx.log. Neste momento, pode usar --prof-processpara procesar o rexistro xerado:

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

Despois de completar a operación, use o navegador para abrir prof.svg para ver o gráfico de chamas deste rexistro: prof pode facer clic para ver a imaxe a tamaño completo. Na imaxe a tamaño completo, pode usar o rato para ver máis detalles. información: prof. svg .

Interpretación do diagrama de chama

No gráfico de chama xerado, cada bloque de cores representa un punto de gravación. Canto máis longo sexa o bloque de cores, máis veces se rexistra; cada liña representa unha capa de pila de chamadas e cantas máis capas, máis capas se chaman; chamadas A pila colócase boca abaixo. Canto máis baixo sexa o bloque de cores, máis orixinal será a función.

Hai dous tipos de bloques de cores, un é vermello e outro azul. No perfilador fibjs, o vermello representa operacións JavaScript e o azul representa operacións io ou operacións nativas. Dependendo do problema que necesites resolver, as áreas nas que debes centrarte variarán. Por exemplo, se necesitas resolver o problema do uso elevado da CPU, debes prestar atención aos bloques de cor vermella.Se a túa aplicación ten un uso baixo da CPU pero unha resposta lenta, debes prestar atención aos bloques de cor azul. Canto maior sexa o bloque de cores preto da parte superior, máis atención e optimización precisa.

👉【Síncrono e asíncrono