Comunidad de diseño web y desarrollo en internet online

Optimizar el VIEWSTACK

Citar            
MensajeEscrito el 11 Oct 2008 10:52 am
Aqui estoy otra vez.

He estado investigando y haciendo varias pruebas de rendimiento y optimizacion para un proyecto que estoy haciendo y he llegado a algunas conclusiones que supongo muchos de vosotros ya sabeis, pero para el que aun es un novatillo como yo igual le interesa.
Se trata de la clase ViewStack que por una parte es una buena forma de cambiar entre pantallas sin necesidad de programar grandes cantidades de codigo, pero por otra parte hay que darse cuenta que no esta muy bien optimizada que digamos. Si lo que se pretende es hacer una aplicacion sencilla no cabe duda que esta clase hace un buen papel pero si quieres llegar mas lejos todavia como es mi caso ( papervision ) hay a veces que el uso de esta clase hace que se ralentice tu proyecto.
Me explico:

Cuando tu creas una nueva lista de vistas ( <mx:ViewStack> <canvas 1> <canvas 2> ... <canvas n> </mx:viewstack> ya a priori el contenido de los canvas no se carga en memoria menos el primero de ellos ( indice 0 ) o el que le digamos. Y cuando cambiamos a otro indice ( selectedIndex = 1 por ejemplo ) cargamos en memoria el contenido de la siguiente vista, estando la vista 0 ya cargada en memoria ( entonces si volvemos al indice 0 lo que hay se pone mas deprisa ). Ahora imaginate que tienes 1000 vistas donde en cada una cargas una pelicula de papervision, cuando llegues a la vista 10 te petara el programa ya que el viewstack no libera de la memoria ( o no hace un removeChild ) de los que ya has visto.

Visto esto, mi idea es la de moficiar esta clase ( o hacer una nueva heredada ) para que este problemilla se solvente, por ejemplo, haciendo que la vista que cambiamos por otra se libere o se descuelgue (removeChild) y asi poder seguir cargando mas cosas en memoria. Claro muchos diran, "entonces utilizar esta clase es una caca", claro, pero ahora imaginate que modificamos el viewstack para que solamente hayan en memoria 3 vistas y de esa forma tener mas rapideza para cambiar entre ellas. Es decir, cargamos la primera la segunda y tambien la tercera para que cuando pasemos a la segunda ira mas rapido porque ya estara cargada. La idea es tener 2 vistas delante y detras para optimizar la velocidad y los recursos.

NOTA: esta idea seria para vistas lineales, que no salten del indice 0 al 5 por ejemplo, pero que tambien se podria optimizar.

Bueno, no suelo explicarme muy claramente pero creo que la idea se entiende, asi que si alguien sabe si ya existe algo parecido a lo que quiero hacer que me lo diga.

Gracias

Por dayon

17 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Oct 2008 02:38 pm
Si realmente vas a hacer una aplicación que consuma mucha memoria, lo que debes plantearte es usar Modules, que han sido pensados precisamente para eso.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Oct 2008 01:16 am
Claro, tal como dice Zah, utiliza modulos de flex... o bien no utilices el ViewStack, si solo son agregar y remover elementos visuales no es tan complicado hacerlo por codigo sin utilzar el viewstack


Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.