2012-09-02 29 views
11

nosetest --con perfil --profile-estadísticas-archivo de salidaCómo utilizar cProfile con nosetest --with-profile?

La salida no puede leer por runsnake, porque nosetest utiliza pez gordo, si quiero generar un archivo que se puede leer con runsnake, necesito convertirlo así:

st = hotshot.stats.load ('salida')

st.dump_stats ('output_new')

¿Puedo ejecutar la prueba con cProfile directamente para leer con runsnake?

Lo siento por mi inglés. Gracias!

+0

parece extraño que los nosetest eligieran hotshot –

+1

Quizás esto sea útil: https://github.com/msherry/nose-cprof? (No lo intenté yo todavía) – uhz

Respuesta

2

No tengo información sobre nosetest excepto que es un proyecto de python. Asi que;

python -m cProfile -o outputfile nosetest 

Entonces,

runsnake outputfile 

RunSnakeRun es extremadamente útil para visualizar perfiles.

Nota: para ejecutar runsnake, debe instalar wx y numpy.

actualización: del comentario de omikron; runsnakerun no puede soportar la salida de perfil de python3. (No probé)

+4

Cabe señalar que 'runsnakerun' no funciona al perfilar el código de Python 3 y parece que ya no se mantiene. En cambio, recomiendo usar 'pyprof2calltree' con' kcachegrind'. – omikron

3

@ respuesta de cihanpesend hizo el trabajo no es para mí (cprofile no pudo encontrar 'nosetests'), pero que tenía éxito en Linux usando:

python -m cProfile -o profile.out `which nosetests` . 

La resultante la salida funciona bien en runsnake.

(Es de suponer que en Windows podría reemplazar which nosetests con la ruta no modificable a sus nosetests de nivel superior script Python.)

I que tienes razón en que la salida del generador de perfiles pez gordo nosetests' no es compatible con runnake. Ciertamente, los dos no juegan muy bien juntos fuera de la caja para mí tampoco.

9

en evolución sobre la respuesta de @squid, se puede utilizar una nariz plugin llamado nose-cprof para reemplazar el valor por defecto de la nariz profiler, hotshot, con cProfile.

Para instalarlo:

pip install nose-cprof 

luego llamar a la nariz así:

nosetests --with-cprofile 

Se debe generar un archivo de salida cprofile, que luego se puede analizar con herramientas como runsnakerun.

+0

No he tenido suerte con el funcionamiento del complemento: la instalación de pip se ve bien, pero cuando se ejecuta --with-cprofile, las banderas no se encuentran. Fui por el --with-profile en su lugar. – Priyeshj

Cuestiones relacionadas