Foros del Web » Creando para Internet » Flash y Actionscript »

Avanzado: Uso de memoria

Estas en el tema de Avanzado: Uso de memoria en el foro de Flash y Actionscript en Foros del Web. Hola amigos Actionscripters! Tengo un par de dudas con respecto al periodo de vida de las variables en Actionscript. Me queda más que claro el ...
  #1 (permalink)  
Antiguo 01/05/2006, 19:24
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pregunta Avanzado: Uso de memoria

Hola amigos Actionscripters!

Tengo un par de dudas con respecto al periodo de vida de las variables en Actionscript.

Me queda más que claro el "Scope" de las mismas, sin embargo, para una aplicación que estoy desarrollando (usando el mProjector) necesito asegurarme que no estaré consumiendo más recursos que los indispensables.

La pregunta es MUY directa:

En que momento las variables definidas DENTRO de una función son desechadas de la memoria?? (o al menos puestas a disposición del garbage collector)

Se que el Player 8 tiene un nuevo y mejorado manejo de garbage collection, pero en este momento me interesa conocer el comportamiento con el player 7, pues estoy usando FlashMX 2004 Pro para hacer mi programa.

Ejemplo:
Código:
var mostrarXml:Function = function(arg:String):Boolean {
    var x:XML = new XML(arg);
    /* Aqui hago cualquier cantidad de cosas con mi variable local */
    return true;
}
Esa variable "x"... se libera de memoria una vez que termina la ejecución de ese llamado a la función?


Cuando una aplicación se va a estar usando todo el día, no contemplar el buen uso de la memoria puede significar graves problemas al final del día. Así que quiero asegurarme de mantener el uso de memoria solo en lo mínimo posible.

Gracias!!
__________________
Manoloweb
  #2 (permalink)  
Antiguo 01/05/2006, 20:23
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Hola Manoloweb!

En flash 2004 el garbage colector libera la memoria de las variables locales en el momento que sale de la función o método, una forma de poder saber esto es utilizando el Debugger de Flash (control+shift+enter), marca en tu código un toggle breakpoint en la línea del objeto que estas instanciando localmente, hay una pestañita que dice locals, ahí van aparecer las variables locales durante la ejecución del programa.

Si sigues el transcurso de la ejecución de este, te vas a dar cuenta que libera la memoria utilizada de las variable locales cada ves que sale del scope.

El debugger de flash es una gran herramienta que te puede servir bastante para depurar tu programa.

Tu proyecto se ve muy interesante!!!, muchas felicitaciones!!!, y un gran saludo!
  #3 (permalink)  
Antiguo 01/05/2006, 20:35
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Hola Jahepi!!

Muchas gracias! Tu respuesta ha sido una melodía!

Es genial saber que AS se comporta como lo esperaba. Sin embargo el debugger me sirve de muy poco, pues para el punto donde empieza lo bueno del programa, el sistema ha debido pasar por el login y otros candados que estoy heredando desde el mProjector, así que el tiempo de vida del "test" (ctrl+shift+enter) se detiene justo antes de poder ver a mis funciones "protagonicas" en funcionamiento.

Esto es consecuencia de hacerlo a la carrera, seguro que despues de este primer intento tendré tiempo de "pensar" en un proceso de producción que no me limite estas funcionalidades de Flash.

Por cierto, este mProjector es una joya!! Al mismo tiempo de contar con el poder de Flash+AS tienes una serie de funciones que te permiten interactuar de forma BARBARA con la PC del usuario final (descargar archivos, usar FTP, abrir, escribir, borrar y crear archivos, agregar elementos al registro, al menú de inicio, determinar un screensaver y un wallpaper para el usuario, minimizar tu aplicación al system tray, hacer screenshots de la pantalla y guardarlos como JPG) en fin... miles de posibilidades adicionales para construir aplicaciones de escritorio con total conectividad con tu servidor vía XML, FTP ó http tradicional.

A aquellos que busquen una herramienta para entregar aplicaciones standalone, deberían darse una vuelta y probarlo. Además, cuesta solo $200 dlls
__________________
Manoloweb
  #4 (permalink)  
Antiguo 01/05/2006, 21:21
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Cita:
Iniciado por Manoloweb
Hola Jahepi!!

Muchas gracias! Tu respuesta ha sido una melodía!

Es genial saber que AS se comporta como lo esperaba. Sin embargo el debugger me sirve de muy poco, pues para el punto donde empieza lo bueno del programa, el sistema ha debido pasar por el login y otros candados que estoy heredando desde el mProjector, así que el tiempo de vida del "test" (ctrl+shift+enter) se detiene justo antes de poder ver a mis funciones "protagonicas" en funcionamiento.

Esto es consecuencia de hacerlo a la carrera, seguro que despues de este primer intento tendré tiempo de "pensar" en un proceso de producción que no me limite estas funcionalidades de Flash.

Por cierto, este mProjector es una joya!! Al mismo tiempo de contar con el poder de Flash+AS tienes una serie de funciones que te permiten interactuar de forma BARBARA con la PC del usuario final (descargar archivos, usar FTP, abrir, escribir, borrar y crear archivos, agregar elementos al registro, al menú de inicio, determinar un screensaver y un wallpaper para el usuario, minimizar tu aplicación al system tray, hacer screenshots de la pantalla y guardarlos como JPG) en fin... miles de posibilidades adicionales para construir aplicaciones de escritorio con total conectividad con tu servidor vía XML, FTP ó http tradicional.

A aquellos que busquen una herramienta para entregar aplicaciones standalone, deberían darse una vuelta y probarlo. Además, cuesta solo $200 dlls
Wooouuw, me quedé de a 6

Realmente una herramienta muy poderosa Manoloweb, doblemente felicitaciones!! , todavía no me explico como es que puedes interactuar con el OS y flash, por ejemplo lo que mencionas de crear y borrar archivos en tu disco local, minimizar la aplicación en el system tray, Óoorales , muy bueno!, espero que algún día pongas como una versión Demo para poder utilizar algunas funcionalidades de tu aplicación.

Un saludo y mucha suerte!!
  #5 (permalink)  
Antiguo 01/05/2006, 22:18
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
No, pero no es MI herramienta la que hace eso, mas bien yo la estoy usando para construir mi aplicación.

Se llama mProjector y la desarrolla una empresa que creo que se llama screentime.

Existe una versión demo por 30 días, y puedes probar todas sus ventajas con ella.

Date una vuelta y pruebala, te va a encantar.

Saludos!!
__________________
Manoloweb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:52.