Encuentre el asesino del rendimiento
La optimización del rendimiento de los servicios en línea es una tarea casi supersticiosa. Un grupo de programadores se enfrentó a una gran cantidad de códigos incomprensibles y adivinaron si la otra parte estaba consumiendo toda la CPU. Dedique mucho tiempo a registrar registros, revisando registros masivos día y noche, tratando de encontrar el asesino del rendimiento.
Sin embargo, al usar fibjs, esto será fácil. Porque fibjs tiene un potente soporte para CPU y perfiladores de memoria, y es muy conveniente de usar.
Inicio sesión
Iniciar el generador de perfiles de CPU en fibjs es extremadamente simple, solo agregue opciones al iniciar --prof
. El intervalo de registro predeterminado es 1000 ms. A medida que la optimización se profundiza, necesitarás analizar los registros con mayor precisión. En este caso, puedes utilizar para --prof-interval
establecer el intervalo. El siguiente ejemplo registra el registro de trabajo de fibjs cada 10 ms.
1fibjs --prof --prof-interval=10 main.js
Registros de procesamiento
Después de que la operación finalice normalmente, o use ctrl_c para finalizar el proceso, se generará un archivo de registro en el directorio actual. El nombre del archivo es fibjs-xxxx.log
. En este momento, puede usar --prof-process
para procesar el registro generado:
1fibjs --prof-process fibjs-xxxx.log prof.svg
Una vez completada la operación, use el navegador para abrir prof.svg y ver el gráfico de llamas de este registro: puede hacer clic para ver la imagen en tamaño completo. En la imagen en tamaño completo, puede operar el mouse para ver más detalles. información: profesor svg .
Interpretación del diagrama de llama.
En el gráfico de llama generado, cada bloque de color representa un punto de grabación. Cuanto más largo es el bloque de color, más veces se registra; cada línea representa una capa de la pila de llamadas, y cuantas más capas, más capas se llaman; llamadas La pila se coloca al revés: cuanto más bajo sea el bloque de color, más original será la función.
Hay dos tipos de bloques de color, uno es rojo y el otro es azul. En el generador de perfiles fibjs, el rojo representa operaciones de JavaScript y el azul representa operaciones io u operaciones nativas. Dependiendo del problema que necesites resolver, las áreas en las que deberás concentrarte variarán. Por ejemplo, si necesita resolver el problema del uso elevado de CPU, debe prestar atención a los bloques de color rojo. Si su aplicación tiene un uso bajo de CPU pero una respuesta lenta, debe prestar atención a los bloques de color azul. Cuanto más grande sea el bloque de color cerca de la parte superior, más atención y optimización necesitará.