Ruby1.8 vs Ruby1.9
Muito já se falou[1] [2] sobre as vantagens da versão 1.9 em relação ao 1.8 do ruby, mas nós (como muitos de vocês que estão nos lendo) não estamos utilizando tal advento em produção, pois ela ainda apresenta algumas incompatibilidades com plugins que não conseguimos viver.
Como alguns devem saber, estou implementando para meu tcc um software que dentre outras coisas realiza o self-organizing-map, de Kohonen. Tal algoritmo não é tão complexo a nível de programação, mas como grande parte dos algoritmos de Inteligência Artificial, ele consome muito processamento.
Devido a isso, realizei diversas implementações (actionscript, ruby puro, ruby e c++) – em breve disponibilizarei – e o que realmente me chamou atenção foi quanto a performance da nova versão que nesse teste, foi quase 2x mais rápida:
Ruby 1.8:
script/performance/benchmarker 2 Train.test_rb user system total real #1 39.510000 7.040000 46.550000 ( 46.574937) #1 41.900000 7.060000 48.960000 ( 49.245010) #1 42.260000 7.020000 49.280000 ( 49.644825)
Ruby 1.9:
script/performance/benchmarker 2 Train.test_rb user system total real #1 28.100000 0.060000 28.160000 ( 28.193008) #1 26.790000 0.100000 26.890000 ( 27.049028) #1 27.150000 0.060000 27.210000 ( 27.616277)
É (ou já passou) a hora de mudar.
2 comentários
Deixe um comentário!

Elvis Fernandes
18/12/2009 13:39Olá, Alexandre!
Eu também usei as redes SOM de Kohonen no meu TCC (http://www.elvis.eti.br/2008/02/10/inteligencia-artificial-para-quem-nao-pode-ter-um-crm/), só que eu fiz em Java.
Estou à procura de uma implementação dessa rede em ruby puro. Se você puder compartilhar o seu código, será muito útil
Parabéns pela comparação do desempenho. Sem dúvida, uma informação valiosa.
P.S.: O primeiro link deste artigo está “quebrado” (tem um http:// a mais).
Abraço!
Elvis
Alexandre Bini
18/12/2009 13:59Olá Elvis, boa tarde!
Aqui http://github.com/voraz/neuralize.me você encontra tanto a minha monografia quanto todo o código fonte da aplicação.
Abraço!