[Cascavel-pm] Garbage Collection
Marco A P D´Andrade
mda em embratel.net.br
Segunda Julho 12 08:53:11 CDT 2004
Thiago,
Não é exatamente sua solicitação, mas acredito que possa ajudar.
A algumas semanas estava tendo um crescimento exponencial no tempo de
requisição via webservices, e ao depurar o codigo percebi que estava
replicando os dados enviados. Pesquisei no google e encontrei uma
referencia ao livro Advanced Perl Programming, que mostrava o código
dumpvar, que tem por objetivo listar todas as variáveis criadas dentro
de um namespace.
Uma alternativa mais simples, caso não tenha utilizado, mas que uso em
conjunto é o Data::Dumper.
PS: Claro que já não é o codigo original.
package DUMPVAR;
sub dumpvar {
local *DD;
my ($packageName) = @_;
local (*alias); # a local typeglob
# We want to get access to the stash corresponding to the package
# name
*stash = *{"${packageName}::"}; # Now %stash is the symbol table
$, = " "; # Output separator for print
# Iterate through the symbol table, which contains glob values
# indexed by symbol names.
open(DD, "> $0.dump");
while (($varName, $globValue) = each %stash) {
print "$varName ============================= \n";
*alias = $globValue;
if (defined ($alias)) {
print DD "\t \$$varName $alias \n";
}
if (defined (@alias)) {
print DD "\t \@$varName @alias \n";
}
if (defined (%alias)) {
print DD "\t \%$varName ",%alias," \n";
}
}
close(DD);
}
Thiago Corrêa César wrote:
>Eu postei muito poucas vezes para a lista, mas agora
>que estou menos apertado devo ajudar mais :^)
>Li a respeito da garbage collection no perlobj e as
>outras fontes que eu achei acabavam repetindo o texto
>do perlobj. Eu queria de alguma forma saber se as
>referências estão sendo limpadas mesmo, pois meu
>esquema de limpeza de cache nao está funcionando legal
>e queria debugá-lo, para isso precisaria saber se uma
>referencia está sendo usada e dentro de qual outra
>referencia, queria a partir do endereço de uma
>referencia (a string 'HASH=FFFFFF') dar um dump em
>seus pais.
>Deu uma buscada no CPAN e não achei em nenhum módulo
>sobre isso, se alguem tiver uma referência legal
>explicando algo mais sobre a garbage collection me
>mande por favor.
>
>Espero ter sido claro (pootz como isso eh difícil :^)
>).
>
>Grande abraço as Mongers
>
>----------
>Thiago Correa César
>ICQ: #87186157
>Linux User: #242611
>
>
>
>
>
>_______________________________________________________
>Yahoo! Mail agora com 100MB, anti-spam e antivírus grátis!
>http://br.info.mail.yahoo.com/
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em mail.pm.org
>http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
>
>
Mais detalhes sobre a lista de discussão Cascavel-pm