[pyar] unittesting performance

Gilgamezh listas en gilgamezh.me
Jue Mayo 8 19:32:15 ART 2014


On 08/05/14 19:20, Andres Riancho wrote:
> Lista,
>
>      Estuve mejorando la performance de algunas funciones, y ahora
> quiero hacer un unittest que verifique mis mejoras. Lo primero que se
> me ocurrio fue algo como:
>
> start = time.time()
> funcion()
> end = time.time()
> self.assertLower(end-start, 10)
>
>      Eso "funciona", pero no escala, algunos de los problemas:
>
> * Si el dia de mañana me compro una PC dos veces mas rapida, y hago
> que la funcion sea menos performance, el test va a pasar (y no
> deberia).
>
> * Si hay mas de un desarrollador corriendo este test, cada uno con una
> PC distinta, es posible que a uno le pase y a otro le falle
>
> * Si la PC donde se ejecuta el test esta bajo mucha carga, el test
> falla y no es por un problema del codigo.
>
>      Entonces lo que pense en hacer, y no encontre como, es contar la
> cantidad de instrucciones de la maquina virtual de python que se
> ejecutan para "funcion()", a lo que me gustaria llegar es:
>
> start = vm.instructions.count()
> funcion()
> end = vm.instructions.count()
> self.assertLower(end-start, 1047928)
>
>      Esto creo yo que soluciona todos los problemas anteriores, pero...
> no encontre como obtener el numero de instrucciones ejecutadas por la
> VM. Es posible? A alguien se le ocurre otra solucion al problema?
>
> Saludos,
>


Hola, de ese hilo enorme que se armó sobre la charla de python más 
rapido que C creo recordar que con timeit se puede medir lo que vos querés.

https://docs.python.org/3.4/library/timeit.html

saludos!

Gilgamezh.



More information about the pyar mailing list