2010-09-21 6 views
7

Empecé a perfilar un script que tiene muchas declaraciones sleep(n). En general, obtengo más del 99% del tiempo de ejecución que duerme. Sin embargo, de vez en cuando se encuentra con problemas de rendimiento durante el tiempo que hace un trabajo real, pero los datos de perfil relevantes e interesantes se vuelven muy difíciles de identificar cuando, p. usando kcachegrind.Python cProfile: cómo filtrar llamadas específicas de los perfiles de datos?

¿Existe alguna manera de que se puedan perfilar ciertas llamadas/funciones en la lista negra? Como alternativa, ¿cómo puedo filtrar esa llamada con el postproceso del archivo de datos de generación de perfiles?

Estoy usando el decorador profilestats (http://pypi.python.org/pypi/profilestats).

Gracias

Respuesta

2

Es necesario algo más que con exclusión de las muestras durante el sueño(). Necesitas las muestras restantes para decirte algo útil. Eso sería un muestreo en bloque, en el reloj de pared, resumiendo el porcentaje en el nivel de línea de código. Zoom es una buena herramienta para este tipo de muestreo, y espero que no sea demasiado difícil ignorar las muestras que contienen una función particular.

Cuestiones relacionadas