[SP-pm] Threads em Perl
Luis Motta Campos
luismottacampos at yahoo.co.uk
Tue Feb 3 13:14:03 PST 2009
Guilherme Luis Eberhardt wrote:
> Pessoal, boa tarde!
>
> Estou desenvolvendo um servidor e cliente em Perl para comunicação
> via socket.
>
> Para agilizar o processo estou utilizando thread no servidor.
>
> Meu sistema operacional é: HP-UX B.11.23 U ia64
>
> Perl: 5.8.9
>
> Meu problema é que para cada requisição que faço do cliente para o
> servidor, a quantidade de uso de páginas aumenta mesmo quando a
> thread terminou sua execução.
>
> (Ou seja, o consumo de memória do servidor aumenta)
>
> Não sei se está ficando algum lixo de memória.
>
> O estranho é que o mesmo código sem thread o consumo de memória do
> servidor fica sempre igual.
>
> O comando que estou utilizando para monitorar o consumo de memória é:
> kmeminfo -u
>
> Antes eu utiliza a função de thread “detach” agora estou usando o
> “join”.
>
> Alguém pode me ajudar?
Em poucas palavras, Guilherme: isso é Perl, não Java. As estratégias e
as vantagens de Java normalmente aqui são mal-vistas por serem ineficientes.
O meu conselho é que você pare de usar threads (e evite o problema de
reclama memória, que, apesar de parecer simples, não é nada trivial de
implementar satisfatoriamente em Perl) e passe a usar processos e fork()
para implementar um servidor. É mais de acordo com a filosofia de
trabalho do mundo unix, e mais elegante e bem conhecido como solução
dentro do mundo Perl.
Com sorte, você vai até conseguir usar um dos "servidores em lata" que
existem no CPAN, e implementar apenas a função que executa o serviço
(deixando o gerenciamento de servidor totalmente ao cargo de uma
biblioteca pronta).
Alguém com menos álcool no sangue que eu pode por favor apontar os
módulos no CPAN para o Guilherme?
Putamplexos!
--
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.
More information about the SaoPaulo-pm
mailing list