Dando continuidade aos comentários desse tópico, estou portando o benchmark feito pelo Antonio Cangiano pra os diversos interpretadores Ruby pra Groovy (e provavelmente pra Java também), o Groovy utilizado é o 1.6.beta.2, o JRuby 1.1.5.
Como os meus conhecimentos de Groovy não são mais tão atuais, gostaria de ajuda dos Grooveiros de plantão pra portar esse negócio, meu primeiro problema foi o fatorial, que está dando stack overflow (ele funciona perfeitamente em Java puro, no JRuby eu tenho que mandar aumentar o espaço de memória da pilha, dá pra fazer isso com Groovy também?):
E só pra constar, rodando esse código em “Java puro” ele rodou em 0.356 segundos (já considerando a afirmação do Louds aí embaixo), o JRuby demorou 1.395 segundos.
A minha máquina é um Intel Core 2 Quad com 2gb de memória, rodando Ubuntu 8.04 no kernel “server”.
Benchmark furado, não mede a mesma coisa e não testa se a saída está correta.
Java não promove int para bigint. Ruby faz isso e boa parte da demora é por conta disso. Enquato java continua multiplicando ints, o ruby tá fazendo isso com número de 1 zilhão de dígitos.
existe uma grande diferença considerável na maioria dos testes de Ruby e JRuby, quais seriam os principais fatores ? no caso do JRuby os errors foram que excedeu o permGen ?
a data do thrunk que ele obteu foi o mesmo do Ruby e a versão do JRuby pareceu ser a 1.8.6, então aí tem-se uma desvantagem na comparação, pelo mesmo paliativo como foi o caso com o Ruby 1.8.
agora se fossemos comparar implementação das VM´s de JRuby e Ruby .NET quais as vantagens e desvatagens atuais entre ambas ?
ao mencionar os erros, não vi no artigo que tipo de erro teria causado!
Agora Groovy rodou, no fim, temos os seguintes tempos pra esse primeiro benchmark (lembrando que JRuby e Groovy tiveram que aumentar o tamanho o stack pra poder rodar) :
Não postei mais no outro tópico porque eu estava viajando. Agora que o código em groovy rodou, você pode postá-lo, ou foi só aumentar o tamanho da stack? Quais foram os argumentos que você passou para a jvm para mudar o tamanho da stack?