Tengo que enfrentar un problema extraño al manejar la memoria en Perl. Estoy trabajando en una aplicación de Perl que usa estructuras de hash bastante grandes. Estoy asignando el tiene objetos de ref hacia atrás. Pero al final parece que incluso si estoy desasignando el objeto y el hash, el uso de la memoria sigue siendo el mismo.Administración de memoria en Perl
Este es un ejemplo del problema:
my $hash = {};
.............
this ds gets populated with a lot of data ...
.......
{
my $obj = new Class("data"=>$hash);
.......
.......
......
}
#even undefing the $hash
undef $hash;
# I can expect some improvement in Memory Utilization, but its not happening
Creo que estoy haciendo algunos errores muy básicos. ¿Puede alguien sugerir?
¿Qué sucede en caso de objetos? Cuando un objeto sale del alcance, se llama al destructor. ¿Esto mantendrá la memoria de las variables léxicas definidas en el objeto? – Kallol
@Kallol, ese caso no es diferente de una variable normal que está fuera del alcance, excepto que puede hacer una limpieza personalizada de su objeto. La memoria * será * libre para que Perl la use para otra cosa, pero Perl aún no la devolverá al sistema. – dan1111
¿qué tipo de limpieza de custome se puede hacer? – Kallol