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 <[email protected]> > 2011/10/9 Andre Carneiro <[email protected]> > >> 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 <[email protected]> >> >>> 2011/10/7 Andre Carneiro <[email protected]>: >>> > 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: [email protected] >>> 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: [email protected] >> 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: [email protected] > 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: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
