[pyar] como saber que consume menos recursos?

Esteban Kuber ekuber en gmail.com
Lun Ago 23 11:42:21 ART 2010


Para todo esto lo que tenés que usar es algún profiler[1], de los
cuales te recomiendo uses cProfile por que es el que menos afecta al
módulo que está mirando de los profilers incluidos ya en el lenguaje.

Usarlo es muy sencillo, te podés armar un archivo nuevo que contenga

    import cProfile
    from MyModule import foo
    cProfile.run('foo()', 'fooprof')

lo que te generará un archivo de profiling llamado `fooprof`
conteniendo los resultados de la corrida de `foo()` hasta que el
proceso termine (si lo matás por consola en Linux no te genera el
archivo, en Windows creo que sí, por lo que tendrías que ejecutar algo
que tenga principio y final), con datos sobre tiempo de proceso,
cantidad de llamadas y árbol de ejecución de tu módulo.

Para visualizar ese archivo, recomiendo usar RunSnakeRun[2], el cuál
ya fué comentado en este thread. Bajo Windows es necesario bajar los
módulos `squaremap` y `runsnakerun`y cambiar un import en runsnakerun
para que salga andando sin tener que instalarlo, pero funciona
perfecto.

El poder ver visualmente cual es el time sink de tu aplicación es invaluable.

Alguien alguna vez me preguntó como se leía el gráfico, por lo que
aclaro que el tiempo está representado por el área de cada rectángulo.
A mayor tamaño, mayor tiempo. Bien sensillo.

[1]: http://docs.python.org/library/profile.html
[2]: http://www.vrplumber.com/programming/runsnakerun/



More information about the pyar mailing list