jruby-1.0.0RC1を使ってみる(2)

この前、サンプルが動かないとかモサーリしてるとか書いたけど、ビルドがうまくできてないだけだった・・すいません。


あらためてJDK1.5.0_11とant1.7.0でビルド。
おかげさまでサンプルも動くようになりました。


でもよー・・

bird:# cat packages/jruby-1.0.0RC1/kakeru2.rb
0.upto(9999){|p| p*2}
bird:#
bird:#
bird:# time ruby packages/jruby-1.0.0RC1/kakeru2.rb
ruby packages/jruby-1.0.0RC1/kakeru2.rb  0.02s user 0.02s system 96% cpu 0.042 total
bird:# time ruby packages/jruby-1.0.0RC1/kakeru2.rb
ruby packages/jruby-1.0.0RC1/kakeru2.rb  0.02s user 0.04s system 99% cpu 0.056 total
bird:# time ruby packages/jruby-1.0.0RC1/kakeru2.rb
ruby packages/jruby-1.0.0RC1/kakeru2.rb  0.03s user 0.03s system 98% cpu 0.057 total
bird:# time ruby packages/jruby-1.0.0RC1/kakeru2.rb
ruby packages/jruby-1.0.0RC1/kakeru2.rb  0.02s user 0.04s system 100% cpu 0.060 total
bird:# time ruby packages/jruby-1.0.0RC1/kakeru2.rb
ruby packages/jruby-1.0.0RC1/kakeru2.rb  0.00s user 0.06s system 88% cpu 0.068 total
bird:#
bird:#
bird:# time jruby packages/jruby-1.0.0RC1/kakeru2.rb
jruby packages/jruby-1.0.0RC1/kakeru2.rb  0.28s user 1.29s system 98% cpu 1.592 total
bird:# time jruby packages/jruby-1.0.0RC1/kakeru2.rb
jruby packages/jruby-1.0.0RC1/kakeru2.rb  0.24s user 1.09s system 96% cpu 1.374 total
bird:# time jruby packages/jruby-1.0.0RC1/kakeru2.rb
jruby packages/jruby-1.0.0RC1/kakeru2.rb  0.31s user 1.04s system 97% cpu 1.392 total
bird:# time jruby packages/jruby-1.0.0RC1/kakeru2.rb
jruby packages/jruby-1.0.0RC1/kakeru2.rb  0.28s user 1.07s system 96% cpu 1.400 total
bird:# time jruby packages/jruby-1.0.0RC1/kakeru2.rb
jruby packages/jruby-1.0.0RC1/kakeru2.rb  0.32s user 1.04s system 96% cpu 1.405 total
bird:#

おそいよ・・??



定番の郵便番号CSVパースを・・(KEN_ALL_1000.CSVは全国版の上位1000行)

bird:# cat ken.rb
require "rubygems"
require "faster_csv"

n = 0
FasterCSV.foreach(ARGV.shift) do |row|
  n += 1
end

puts n

bird:#
bird:#
bird:# time ruby ken.rb KEN_ALL_1000.CSV
1000
ruby ken.rb KEN_ALL_1000.CSV  0.30s user 0.10s system 99% cpu 0.410 total
bird:# time jruby ken.rb KEN_ALL_1000.CSV
bird:#
bird:#
/home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:1563:in `shift': Unclosed quoted field on line 1. (FasterCSV::MalformedCSVError)
        from /home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:1430:in `loop'
        from /home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:1566:in `shift'
        from /home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:1430:in `each'
        from /home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:990:in `foreach'
        from ken.rb:8:in `open'
        from /home/bird/packages/jruby-1.0.0RC1/lib/ruby/gems/1.8/gems/fastercsv-1.2.0/lib/faster_csv.rb:991:in `foreach'
        from ken.rb:8
jruby ken.rb KEN_ALL_1000.CSV  26.89s user 10.60s system 99% cpu 37.714 total

なんとエラー!
おっと、そういえばjrubyの方は別途jrubyのgemでfastercsvをインスコしたんです。
rubyとjrubyのgemは別々と・・


とりあえず行数だけカウントしてみる・・(KEN_ALL_3.CSVは全国版の3倍)

bird:# cat cnt.rb
n = 0
ARGF.each do |row|
  n += 1
end

puts n


bird:#
bird:#
bird:# time ruby cnt.rb KEN_ALL3.CSV
365658
ruby cnt.rb KEN_ALL3.CSV  1.56s user 0.68s system 99% cpu 2.247 total
bird:# time ruby cnt.rb KEN_ALL3.CSV
365658
ruby cnt.rb KEN_ALL3.CSV  1.77s user 0.90s system 99% cpu 2.675 total
bird:# time ruby cnt.rb KEN_ALL3.CSV
365658
ruby cnt.rb KEN_ALL3.CSV  1.62s user 0.80s system 99% cpu 2.425 total
bird:# time ruby cnt.rb KEN_ALL3.CSV
365658
ruby cnt.rb KEN_ALL3.CSV  1.57s user 0.73s system 100% cpu 2.303 total
bird:# time ruby cnt.rb KEN_ALL3.CSV
365658
ruby cnt.rb KEN_ALL3.CSV  1.49s user 0.79s system 99% cpu 2.283 total
bird:#
bird:#
bird:# time jruby cnt.rb KEN_ALL3.CSV
365658
jruby cnt.rb KEN_ALL3.CSV  7.25s user 1.97s system 99% cpu 9.308 total
bird:# time jruby cnt.rb KEN_ALL3.CSV
365658
jruby cnt.rb KEN_ALL3.CSV  6.40s user 2.61s system 99% cpu 9.046 total
bird:# time jruby cnt.rb KEN_ALL3.CSV
365658
jruby cnt.rb KEN_ALL3.CSV  6.63s user 2.00s system 99% cpu 8.676 total
bird:# time jruby cnt.rb KEN_ALL3.CSV
365658
jruby cnt.rb KEN_ALL3.CSV  7.46s user 2.14s system 99% cpu 9.692 total
bird:# time jruby cnt.rb KEN_ALL3.CSV
365658
jruby cnt.rb KEN_ALL3.CSV  7.51s user 2.09s system 99% cpu 9.639 total

やっぱりJavaVMの立ち上がりがおそいのか・・