Ho affrontato un problema strano di gestione della memoria in Perl. Sto lavorando in un'applicazione perl che utilizza hash-strutture piuttosto grandi. Sto assegnando l'ha rif con e indietro gli oggetti. Ma alla fine sembra che anche se sto deallocando l'oggetto e l'hash, l'utilizzo della memoria è rimasto lo stesso.Gestione della memoria in perl
Ecco un esempio 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
penso che sto facendo alcuni errori molto semplici. Qualcuno può suggerire?
Cosa succede in caso di oggetti? Quando un oggetto esce dall'ambito, viene chiamato il distruttore. Ciò conserverà ancora la memoria delle variabili lessicali definite nell'oggetto? – Kallol
@Kallol, quel caso non è diverso da una variabile normale che non rientra nell'ambito, tranne che è possibile eseguire una pulizia personalizzata dell'oggetto. La memoria * sarà * libera per il Perl da usare per qualcos'altro, ma Perl non lo restituirà ancora al sistema. – dan1111
che tipo di pulizia del cliente può essere fatto? – Kallol