domingo, 28 de noviembre de 2010

Mejorando código

english version

En la última entrada del blog habiamos quedado en que los sprites de cocos 0.4.0 eran bastante mas lentos que los de pyglet 1.1.4. Veamos si se puede mejorar los sprites de cocos.  

Por dónde empezar ?
Python tiene de fábrica el modulo cProfile, asi que agrego unas pocas lineas en cada script para saber cuánto tiempo se gasta en cada parte del código.

Esto me deja con un montón de mediciones; para explorar el conjunto de estadisticas uso RunSnakeRun, un visualizador de estadisticas cProfile.
Lo que hace es dibujar el call tree en forma de cajas anidadas, con area proporcional al tiempo consumido.

Jugando un poco con las opciones de visualizacion obtengo un par de imágenes que parecen interesantes; combinadas en una y anotadas se ven así:



miércoles, 10 de noviembre de 2010

performance de sprites con cocos y pyglet

english version

Cuántos sprites puedo mostrar al mismo tiempo sin que se caigan mucho las fps ?
Que puedo hacer para mejorar el rendimiento ?
Hago un caso testigo, mido y veo que conclusiones puedo sacar.

Escena testigo, en pseudocódigo:
  • estado inicial: se crean n bolas con una posición y velocidad mas o menos aleatoria; la posición inicial cae dentro del rectángulo visible de la pantalla.
  • update(dt): en cada update, cada bola actualiza su posición con el clásico
    si la bola tocó el borde, rebota de modo que no salga de pantalla

Screenshot