[SP-pm] Software livre em Perl

Andre Carneiro andregarciacarneiro at gmail.com
Mon Oct 10 12:14:57 PDT 2011


Eu não disse que o compilador fica mais lento, eu disse que compilar Perl
com suporte a threads deixa tudo mais lento. 'Alguns processos em XS rodando
mais rápido' não resolve o meu problema...


Cheers!

2011/10/9 Daniel de Oliveira Mantovani <daniel.oliveira.mantovani at gmail.com>

> 2011/10/9 Andre Carneiro <andregarciacarneiro at gmail.com>
>
>> O meu problema com threads é memória. Usa-se muita memória trabalhando com
>> threads. E recentemente tive problemas sérios de vazamento de memória, e tem
>> 90% de chance de ser nas threads, embora isso não seja conclusivo. Eu estou
>> sabendo que houve um esforço para arrumar isso no Perl5, mas o fato é que
>> ainda há problemas, e não tô afim de por a mão na massa para arrumar no
>> momento, mesmo que fosse capaz disso. Fora o fato de que compilando com
>> suporte a threads, tudo fica muuuito mais lento.
>
>
> André, threads não deixa o compilador do Perl em si mais lento, a diferença
> é que o compilador de C vai demorar um pouco mais para construir um código
> Perl compilado com threads, porque o código é mais complexo. Alguns códigos
> que utilizam XS podem ficar um pouco mais rápidos com uma versão do
> compilador com threads do que uma versão sem threads.
>
> Sim é verdade que variáveis compartilhadas ocupam um pouco mais memória do
> que não compartilhadas e gastam um pouco mais de performance. Mas se você
> seguir as boas práticas poderá reduzir os gastos com memória e performance.
> Tudo está no jeito de fazer e não na linguagem em si.
>
> "Performance considerations
>        The main thing to bear in mind when comparing Perl's ithreads to
> other threading models is the fact that for each new thread created, a
> complete
>        copy of all the variables and data of the parent thread has to be
> taken. Thus, thread creation can be quite expensive, both in terms of memory
>        usage and time spent in creation. The ideal way to reduce these
> costs is to have a relatively short number of long-lived threads, all
> created
>        fairly early on (before the base thread has accumulated too much
> data). Of course, this may not always be possible, so compromises have to be
>        made. However, after a thread has been created, its performance and
> extra memory usage should be little different than ordinary code.
> "
>
>
>
>
>> Eu tive outros tipos de problemas com forks. Basicamente, 'threads'(na
>> verdade são processos simulando threads), que simplesmente caiam com
>> mensagens de segmentation fault, dentre outras bizarrices. Eu cheguei a usar
>> o forks com Perl5 compilado sem threads para ganhar um pouco de desempenho,
>> mesmo assim não tive sucesso. O Stan estava trabalhando comigo na época sabe
>> do que eu tô falando.
>>
>> Nós cogitamos usar o POE na época também. Mas sinceramente eu não gostei
>> de como se desenvolve usando POE, achei bem tedioso e complicadinho demais
>> pra resolver coisas muito simples. Além do mais, para o problema que nós
>> tínhamos na época, o AnyEvent provou-se ser muito mais eficiente, tanto em
>> relação a velocidade quanto de utilização de memória.
>>
>>
>>
>>
>> Cheers!
>>
>>
>> 2011/10/8 breno <breno at rio.pm.org>
>>
>>> 2011/10/7 Andre Carneiro <andregarciacarneiro at gmail.com>:
>>> > Nao, obrigado!
>>> > Fui 'mordido' por esse módulo em várias ocasiões.
>>> > Eu prefiro implementar compartilhamento de informações e continuar
>>> usando o
>>> > AnyEvent, ou implementar algo diferente, do que usar esse módulo de
>>> novo.
>>> >
>>>
>>> Pode ser mais específico? Seria interessante entender as situações que
>>> te levaram a essa opinião. Preferencialmente, embora não
>>> necessariamente, na forma de bug reports :-)
>>>
>>> Note que não me refiro a uma comparação com AnyEvent, e sim com o uso
>>> de threads.
>>>
>>> []s
>>>
>>> -b
>>> =begin disclaimer
>>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>>
>>
>> --
>> André Garcia Carneiro
>> Analista/Desenvolvedor Perl
>> (11)82907780
>>
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> http://noticiasglobal.com
>
> "If you’ve never written anything thoughtful, then you’ve never had any
> difficult, important, or interesting thoughts. That’s the secret: people who
> don’t write, are people who don’t think."
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20111010/c26e89b7/attachment-0001.html>


More information about the SaoPaulo-pm mailing list