Un generador de perfiles de memoria de código abierto súper fácil de usar. ¡Hoy te enseñaré cómo usarlo!

Memray es un perfilador de memoria de código abierto desarrollado por Bloomberg, lleva más de un mes en código abierto y ya ha recibido más de 8,4k estrellas, lo que lo convierte en un auténtico proyecto estrella. Hoy recomendaremos esta herramienta de análisis de memoria de Python a todos.

Memray puede rastrear las asignaciones de memoria en el código Python, los módulos de extensión nativos y el propio intérprete de Python. Puede generar muchos tipos diferentes de informes para ayudarlo a analizar el uso de la memoria del código Python.

  • Características principales de la herramienta:

  • Realice un seguimiento de cada llamada a función y rastree con precisión la pila de llamadas

  • Puede rastrear llamadas a la biblioteca c/c++

  • El análisis es muy rápido.

  • Recopile datos de la memoria y genere varios íconos

  • Usando hilos de Python

  • Trabajar con hilos nativos

  • Problemas que pueden ayudar a resolver:

  • Analice las asignaciones de memoria en aplicaciones para descubrir las causas del uso elevado de memoria.

  • Encuentre la causa de la pérdida de memoria

  • Encuentre puntos de acceso de código que causen grandes asignaciones de memoria

► ► ►  instalación de memoria

  • Requisitos ambientales: python3.7+ o superior, sistema Linux (solo admite sistema Linux)

  • Instalación: pip3 instalar memoria

► ► ►  uso de memoria

ayuda para el uso de memoria

python3 -m memray --ayuda

imagen

parámetro

efecto

correr

Ejecute la aplicación especificada y realice un seguimiento del uso de la memoria

gráfico de llamas    

En el informe html, use el gráfico de llamas para mostrar el uso de memoria

mesa

En el archivo de informe html, muestre la situación del análisis de memoria en una tabla

vivir

Utilice la visualización de pantalla en tiempo real para mostrar varios usos de memoria

árbol

En la terminal, muestra el uso de la memoria en una estructura de árbol.

analizar gramaticalmente

Utilice el modo de depuración para mostrar el uso de memoria de cada línea

resumen

Resumir el perfil de uso de memoria durante la operación del terminal

estadísticas

Muestra el uso de memoria en el terminal con gran detalle

► ► ►  ejecutar el uso del comando

  • python3 -m memray run --help obtener ayuda

imagen

parámetro

efecto

-oSALIDA,--salida SALIDA

Especificar dónde generar los resultados

--vivir

Iniciar el modo de sesión de seguimiento en vivo

--en vivo-remoto

Inicie una sesión de seguimiento en vivo y espere a que el cliente se conecte

--live-port LIVE_PORT, 

-p PUERTO_VIVO

El puerto a utilizar al iniciar el seguimiento en tiempo real

--nativo

Seguimiento de la pila C/C++

--seguir-tenedor

Seguimiento de asignaciones en procesos secundarios bifurcados por un script

--trace-python-asignadores

Registre la asignación del asignador de pymalloc

-q, --tranquilo

No muestra ningún resultado específico de seguimiento cuando se ejecuta

-f, --fuerza

Recompra forzada de archivos existentes

--comprimir-al-salir

Utilice lz4 para comprimir el archivo generado una vez completado el seguimiento

--sin comprimir

Archivos generados sin compresión lz4.

-C

programa pasado como una cadena

-metro

Ejecutar módulos de biblioteca como scripts

  • python3 -m memray run xxx.py analiza directamente el uso de memoria de un determinado archivo py y se generará un archivo de registro de uso de memoria de 'memray-py file name.process id.bin' en la ruta actual. Por supuesto, también puede seguir -o outFiPath para especificar la ruta de salida. Si el archivo py que se ejecuta es el código del módulo, también puede usar el modo -m xxx.py para ejecutarlo.

imagen

El archivo 'memray-py filename.processid.bin' se puede convertir en un informe gráfico html-flame mediante python3 -m memray flamegraph memray-pyfilename.processid.bin

imagen

Como se muestra en la figura anterior, de arriba a abajo, se muestra el proceso de llamada del programa y el ancho representa cuánta memoria ocupa la función.

  • python3 -m memray run --native xxxx.py rastreará y analizará la memoria consumida llamando a las funciones C/C++ subyacentes en el código Python

imagen

imagen

  • python3 -m memray run --trace-python-allocators xxx.py rastrea y analiza el asignador de memoria del programa Python pymalloc

imagen

imagen

Esto parece tener el mismo efecto que sin agregar parámetros, pero en realidad es completamente diferente. Este método hará un seguimiento profundo de la asignación de memoria. Hay cuatro asignadores de memoria comunes en Python (malloc, free, realloc, pymalloc). Este parámetro es muy útil cuando Python tiene un desbordamiento de memoria. Sin embargo, con este parámetro agregado, la velocidad de transporte será más lenta y los archivos generados por los datos recopilados serán más grandes.

  • python3 -m memray run --live xxx.py muestra datos de memoria rastreados en modo de pantalla en vivo.

imagen

De forma predeterminada, los datos en la memoria total están ordenados de mayor a menor; presione "O" para ordenar y mostrar los objetos de la memoria según la memoria privada, de mayor a menor; presione "A" para ordenar los objetos de la memoria según la cantidad de memoria asignaciones de mayor a menor.

Con estos datos estadísticos, puede localizar rápidamente qué objetos ocupan una gran cantidad de memoria y a qué objetos se les asigna memoria con frecuencia. Estos objetos son los objetos de análisis clave.

comando flamegraph --- generar informe de gráfico de llamas

  • python3 -m memray flamegraph --help Obtener ayuda

imagen

  • python3 -m memray flamegraph xxx.bin genera un gráfico de llama

comando de tabla: generar informe de tabla

  • python3 -m tabla de memoria --help Obtener ayuda

  • python3 -m memray table xxxx.bin convierte el archivo bin en un informe de tabla

imagen

comando de árbol: generar informe de árbol

  • python3 -m memray tree --help Obtener ayuda

  • python3 -m memray tree xxxx.bin convierte el archivo bin en un informe de árbol

imagen

comando de resumen: generar informe de resumen

  • python3 -m resumen de memoria --help Obtener ayuda

  • python3 -m memray resumen xxxx.bin analiza el archivo bin y genera un informe resumido

imagen

Comando stats---generar informes estadísticos detallados

  • python3 -m memray stats --ayuda a obtener ayuda

  • python3 -m memray stats xxxx.bin analiza el archivo bin y genera un informe detallado

imagen

Finalmente: se ha compilado y subido el video tutorial completo de prueba de software a continuación. Los amigos que lo necesiten pueden obtenerlo ellos mismos [garantizado 100% gratis]

Documento de entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista provienen de los últimos materiales de entrevista de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas. Después de terminar esto set Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.

Supongo que te gusta

Origin blog.csdn.net/AI_Green/article/details/133321879
Recomendado
Clasificación