[pyar] unittesting performance

Juan Manuel Pérez jmperez.85 en gmail.com
Vie Mayo 9 11:24:59 ART 2014


Qué fue lo que optimizaste de dicha función?

* Si optimizaste la complejidad algorítmica de la función, no tiene mucho
sentido para mí estar armando unit test para ello.
* Si optimizaste la cantidad de queries a BBDD, los accesos a red => podés
hacer algo un poco más medible con ésto.

De todas formas, como dijeron por ahí, para mí no es un unit test lo que
querés armar. Un test de unidad te sirve probar la "correctitud" (o falta
de bugs según Dijkstra) de un módulo.

Por otro lado, ¿tiene sentido hacer una prueba "unitaria" de performance?
¿No conviene hacer un test de performance del sistema?

Por último... nunca utilicé ninguna herramienta automatizada de test de
performance. ¿Cuál es el estado del arte en cuestión?

Saludos,

JM


2014-05-08 19:20 GMT-03:00 Andres Riancho <andres.riancho en gmail.com>:

> 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
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140509/0590e6d3/attachment.html>


More information about the pyar mailing list