Comunidad de diseño web y desarrollo en internet online

Ayuda: Consumo de memoria AS3

Citar            
MensajeEscrito el 29 Jun 2010 03:23 pm
Hola Lista, he creado un reproductor de medios (mp4, swf (normal y dinámico), flv) el cual me funciona pero tengo un problema con el consumo de memoria.

He leído mucho en foros sobre este problema y hablan de una solución que es el Garbage Collector. He implementado el recolector de basura y he revisado todo el código para ver que no se me halla quedado ningún extracto de código o alguna mala programación en donde se esté creando y/o no se esté eliminando algun movieclip cuando ya no lo utilizo.

Mi reproductor funciona de la siguiente manera: Tengo 3 Timer de los cuales el primero es el encargado de ejecutar una funcion "A" para el manejor del GC. El segundo Timer carga la función "B" que realiza un análisis de código XML en donde tengo el playlist. Esta función "B" verifica si el playlist es nuevo para cargarlo, de lo contrario no hace nada. El tercer Timer llama a una funciona "C" que carga los contenidos del playlist en un movieclip(swf) o un FlvPLayback(mp4,flv).

Cuando se ejecuta la "B" los child del playlist se guardan en un objeto "XMLList" y cada vez que halla algún cambio en el XML este objeto es recargado con la nueva información.

Al principio la forma de cargar los contenidos era eliminando todo objeto que existiera en el Stage (por cada carga de un nuevo contenido) y lo siguiente era crear un movieclip o FLVPlayback (según fuera el caso) y lo agrego al Stage modificando algunas propiedades para ajustar y posicionar dentro de la pelicula. Ahora lo que hago es crear 1 movieclip y 1 FLVPlayback desde el inicio y manejando sus instancias le cargo el contenido a uno u otro según corresponda.

Otra cosa que tengo trabajando es un envío de datos a una pagína web por medio de las clases "URLRequest" y "URLLoader" que se ejecuta cada vez que se exibe un nuevo contenido.

Todo el proceso funciona bien pero después de un tiempo me consume mucha memoria y aún no sé por donde puede estar el problema.

¿ Podría ser que los SWF Dinámicos que cargo puedan generar garbage que no es eliminado de la película principal ?
¿ Cuál es la mejor forma de manejar objetos para asegurarme que no están en memoria y si aún lo están poder enterarme por algúna funciona o algo similar para forzar la descarga ?
¿ El envío de datos a una página web podría generar basura ? ¿ Hay alguna forma borrar el objeto después del envío de datos ?

¿ Alguien tiene alguna ayuda para mejorar el rendimiento y funcionamiento de mi reproductor ?

Espero me puedan ayudar,
Gracias.

Por DarkLaden

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Jul 2010 02:47 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jul 2010 03:08 pm
Gracias Jorge por el Link, lo estoy revisando. Claro que mi problema no es únicamente sobre el uso de GC sino sobre un buen manejo de objetos (crear, destruir, etc). Seguiré averiguando sobre el tema aunque creo que el problema está en los flash que cargo a mi player ya que no están bien depurados, estos flash deben dejar basura en la memoria que no es borrada. Voy a hacer pruebas con flash sencillos para encontrar el problema.

Por DarkLaden

6 de clabLevel



Genero:Masculino  

firefox

 

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