[pyar] unittesting performance
Andres Riancho
andres.riancho en gmail.com
Jue Mayo 8 19:20:50 ART 2014
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,
--
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3
More information about the pyar
mailing list