Guía de desarrollo de guías

Encuentra al asesino del rendimiento

La optimización del rendimiento de los servicios en línea es casi supersticiosa. Un grupo de programadores se enfrentó a una gran cantidad de código incomprensible y adivinó si la otra parte estaba usando toda la CPU. Dedique mucho tiempo a grabar registros, hojear los registros masivos día y noche, tratando de encontrar el asesino del rendimiento.

Sin embargo, con fibjs, todo esto se simplificará. Porque fibjs tiene un potente soporte de perfilador de memoria y cpu, y es muy cómodo de usar.

Tronco

fibjs start cpu profiler es extremadamente simple, aumenta la --profopción de inicio . El intervalo de registro predeterminado es 1000 ms, con una optimización en profundidad, necesitará un análisis más preciso del registro, luego puede usar el --prof-intervalintervalo establecido. El siguiente ejemplo registra el registro de trabajo de fibjs cada 10 ms.

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

Registro de procesamiento

Después del final de la operación normal, o use ctrl_c al final del proceso, el directorio actual generará un archivo de registro, el nombre del archivo es fibjs-xxxx.log, en este momento, puede usar el --prof-processprocesamiento de registro generado:

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

Después de ejecutar, use el navegador para abrir prof.svg, puede ver el mapa 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 del mapa de llamas

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 ha registrado; cada línea representa una capa de la pila de llamadas, y cuantas más capas, más capas se llaman; La pila se coloca al revés, cuanto más bajo sea el bloque de color, mayor será 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 las operaciones de JavaScript y el azul representa las operaciones de io o las operaciones nativas. Dependiendo del problema que necesite resolver, el área en la que debe concentrarse será diferente. Por ejemplo, si necesita resolver el problema de la alta ocupación de la CPU, debe prestar atención al bloque de color rojo en este momento; y si su aplicación, la ocupación de la CPU no es alta, pero la respuesta es lenta, debe preste atención al bloque de color azul. Cuanto más grande sea el bloque de color cerca de la parte superior, más importante debe preocuparse y optimizarse.

👉 [ Desarrollo rápido de aplicaciones de escritorio ]