AOベンチを移植した
yarv2llvmにAOベンチを移植しました。AOベンチはSyoyo Fujitaさんが作成したレンダラでベンチマークに使うため色々な言語に移植されています。詳しくは、http://lucille.atso-net.jp/aobench/を参照してください。
今回移植したyarv2llvm版はRuby1.9でも動くのですが、yarv2llvmに合せているため、もっといい書き方があるのにーって思うことと思います。特に、ファイルのopenをまだ作っていないので、イメージファイルを標準出力に出すという暴挙に出ています。
ベンチマークのソースはこれです。
http://github.com/miura1729/yarv2llvm/blob/a888d8ce6855e70b630a8673d4cfe075a8e44f0e/sample/ao-render.rb
yarv2llvmとruby1.9で動かしてみました。
time (ruby19 yarv2llvm.rb --no-type-message sample/ao-render.rb > ao.ppm) real 3m20.883s user 3m1.982s sys 0m0.809s time (ruby19 sample/ao-render.rb > ao2.ppm) real 9m16.033s user 8m34.140s sys 0m0.155s