[Cascavel-pm] Perl X RAM (memória)

Andre Carneiro andregarciacarneiro em gmail.com
Quinta Janeiro 20 02:35:34 PST 2011


2011/1/20 Tom Mostard <capmostarda em gmail.com>

> Olá, pessoal!
>
> Estou tendo um problema de memória com scripts em Perl.
> Alguém aí teve algum problema parecido?
>
> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em
> paralelo.
> Então existe um script Perl "chefe" que fica responsável por executar eles
> com parâmetros diferentes usando system().
>
> O sistema acessa vários bancos de dados e a depender do banco, da tabela e
> do campo ele executa um módulo específico.
> Uso o MySQL em outra máquina para não abusar da memória.
>
> Script-chefe:
>
> while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto
> são 60
> {
>     system( './script.pl $parametro1 > /dev/null & ' );
> }
>
> Dentro do script é carregado um módulo usando require assim:
>
> require $ARGV[ 0 ].".pm";
>
> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB
> de memória.
> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo
> sistema.
> Me parece que cada script carregado usa 8 MB em média. (Isso é
> possível/normal?)
> Quando uso 60, nem todos os scripts são executados.
> Existe alguma maneira de executar um script otimizando o uso de memória ou
> vou ter que reavaliar o código?
> Já revisei o código e eliminei arrays, variáveis de conexões com bancos
> desnecessárias.
> Existe algo mais que eu possa fazer?
>


Essa fica difícil responder sem olhar código.



>
> Abraços,
>
> Tom
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20110120/5ff93f2c/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm