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...<div><br></div><div><br>
</div><div>Cheers!</div><div><br><div class="gmail_quote">2011/10/9 Daniel de Oliveira Mantovani <span dir="ltr"><<a href="mailto:daniel.oliveira.mantovani@gmail.com">daniel.oliveira.mantovani@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div class="im">2011/10/9 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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.</blockquote>

<div><br></div></div><div>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.</div>

<div><br></div><div>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.</div>

<div><br></div><div>"Performance considerations</div><div>       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</div>

<div>       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</div><div>       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</div>

<div>       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</div><div>       made. However, after a thread has been created, its performance and extra memory usage should be little different than ordinary code.</div>
<div><div></div><div class="h5">
<div>"</div><div><br></div><div> </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<br></div><div>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.</div>


<div><br></div><div>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.</div>


<div><br></div><div><br></div><div><br></div><div><br></div><div>Cheers!</div><div><br></div><div><div><div></div><div><br><div class="gmail_quote">2011/10/8 breno <span dir="ltr"><<a href="mailto:breno@rio.pm.org" target="_blank">breno@rio.pm.org</a>></span><br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2011/10/7 Andre Carneiro <<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>>:<br>



<div>> Nao, obrigado!<br>
> Fui 'mordido' por esse módulo em várias ocasiões.<br>
> Eu prefiro implementar compartilhamento de informações e continuar usando o<br>
> AnyEvent, ou implementar algo diferente, do que usar esse módulo de novo.<br>
><br>
<br>
</div>Pode ser mais específico? Seria interessante entender as situações que<br>
te levaram a essa opinião. Preferencialmente, embora não<br>
necessariamente, na forma de bug reports :-)<br>
<br>
Note que não me refiro a uma comparação com AnyEvent, e sim com o uso<br>
de threads.<br>
<div><div></div><div><br>
[]s<br>
<br>
-b<br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><div>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br><a href="tel:%2811%2982907780" value="+551182907780" target="_blank">(11)82907780</a><br>


</div></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div></div></div><br><br clear="all"><div><br></div>-- <br><div><div></div><div class="h5"><a href="http://noticiasglobal.com" target="_blank">http://noticiasglobal.com</a><br><br>"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."<br>


</div></div><br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>(11)82907780<br>
</div>