Guía de desarrollo de la guía

Descubre el asesino de rendimiento

La optimización del rendimiento de los servicios en línea es casi una superstición. Un grupo de programadores se enfrenta a una gran cantidad de código ininteligible y adivina si están utilizando la CPU. Pase mucho tiempo grabando registros, observándolos día y noche en registros masivos, tratando de encontrar un asesino de rendimiento.

Sin embargo, con fibjs, todo esto se volverá simple. Debido a que fibjs tiene un potente soporte de CPU y generador de perfiles de memoria, y es muy conveniente de usar.

Iniciar sesión

Fibjs es muy simple para iniciar el perfilador de la CPU, solo agregue la opción --prof al iniciar. El intervalo de registro predeterminado es de 1000 ms. Con la profundización de la optimización, deberá analizar el registro con mayor precisión. En este momento, puede usar --prof-interval establecer el intervalo. En el siguiente ejemplo, el registro de trabajo de fibjs se registra cada 10 ms.

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

Procesando registros

Después de que la operación finalice normalmente, o después de finalizar el proceso usando ctrl_c, se generará un archivo de registro en el directorio actual, y el nombre del archivo es fibjs-xxxx.log . En este momento, puede usar --prof-process procesar el registro generado:

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

Al final de la ejecución, use un navegador para abrir prof.svg, puede ver el gráfico de llamas de este registro: profe Puede hacer clic para ver la imagen a tamaño completo En la imagen a tamaño completo, puede usar el mouse para ver información más detallada: prof.svg .

Interpretación de la carta de llamas

En el gráfico de llama generado, cada bloque de color representa un punto de grabación. Cuanto más largo sea el bloque de color, más tiempos grabados; cada línea representa una capa de la pila de llamadas, y mientras más capas, más capas de llamadas; la llamada La pila se coloca al revés, cuanto más bajo es el bloque de color, mayor es la función original.

Hay dos tipos de bloques de color, uno es rojo y el otro es azul. En el generador de perfiles de fibjs, el rojo representa operaciones de JavaScript y el azul representa operaciones io u operaciones nativas. Dependiendo del problema que necesite resolver, el área en la que debe enfocarse será diferente. Por ejemplo, si necesita resolver el problema del uso excesivo de la CPU, debe prestar atención al bloque de color rojo; si su aplicación tiene un uso bajo de la CPU pero la respuesta es lenta, debe prestar atención al bloque de color azul. Cuanto más grande sea el bloque de color cerca de la parte superior, más importante será enfocarse y optimizar.