Foros del Web » Programación para mayores de 30 ;) » Programación General »

Como liberar la memoria usada por una variable en tiempo de ejecucion ?

Estas en el tema de Como liberar la memoria usada por una variable en tiempo de ejecucion ? en el foro de Programación General en Foros del Web. hola a todos en un programa que tengo en perl tengo la apertura de varios archivos (muchos) a variables locales mediante el operador diamente, de ...
  #1 (permalink)  
Antiguo 18/09/2008, 15:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Busqueda Como liberar la memoria usada por una variable en tiempo de ejecucion ?

hola a todos
en un programa que tengo en perl tengo la apertura de varios archivos (muchos) a variables locales mediante el operador diamente, de la siguiente manera

$abrir="miarchivo.txt";
open(abrir);
@almacenar=<abrir>;
close(abrir);

foreach(@almacenar)
{
$instrucciones
}
# que instruccion debe ir aqui?


quisiera saber si esto afecta el rendimiento del programa, debido a la utilizacion de mucha memoria temporal (algunos archivos son grandes),

y si es asi que instruccion pudiera yo usar (despues del foreach) con el fin de liberar esa memoria?

Esto es debido a que aveces el programa se para en un punto, y creo que puede ser por esto, y quisiera saber como poder solucionarlo



Muchisimas gracias de antemano por su colaboracion.


Carlos a
  #2 (permalink)  
Antiguo 18/09/2008, 20:54
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Como liberar la memoria usada por una variable en tiempo de ejecucion ?

Lo que quieres hacer es un

@almacenar = ('');

Eso limpiaría el @almacenar...Pero si tu problema es de memoria y no de proceso, puedes usar:

Código:
open...;
while(my $line = <abrir>){
    $instrucciones;
}
close(abrir);
Con esto procesas el archivo línea por línea, sin cargar todo el archvo en memoria...Lo que si te consume un poco más de procesador...

Espero que te sirva

Saludos
__________________
Esteban Quintana
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 09:56.