From: Narihiro Nakamura Date: 2011-08-08T17:11:54+09:00 Subject: [ruby-dev:44361] [Ruby 1.9 - Bug #5127] ruby 1.9.3 prev1 で Array#[]=( Array.new ) が1.9.2より2倍遅い Issue #5127 has been updated by Narihiro Nakamura. Assignee set to Narihiro Nakamura GCの問題のようですので、引き取ります。 ---------------------------------------- Bug #5127: ruby 1.9.3 prev1 で Array#[]=( Array.new ) が1.9.2より2倍遅い http://redmine.ruby-lang.org/issues/5127 Author: Anonymous Status: Open Priority: Normal Assignee: Narihiro Nakamura Category: Target version: 1.9.3 ruby -v: - Arrayオブジェクトを Array#[]= で設定する場合に、 ruby 1.9.3 prev1 が 1.9.2 p290 と比較して2倍ほど遅くなっているようなので ご報告いたします。 (既知の現象であれば、申し訳ありませんがスルーしてください) ---- require 'benchmark' Benchmark.bm(22) do |x| x.report "Array.new" do 1_000_000.times do Array.new(100) end end x.report "Array#[]= with Array" do a = Array.new(1_000_000) 1_000_000.times do |i| a[i] = Array.new(100) end end end ---- 上記のコードを実行した場合に、私の環境では以下のような結果となります。 $ ruby19 -v bm_array.rb ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.0.0] user system total real Array.new 0.600000 0.140000 0.740000 ( 0.740639) Array#[]= with Array 8.590000 0.300000 8.890000 ( 8.874507) $ ruby -v bm_array.rb ruby 1.9.3dev (2011-07-31 revision 32789) [x86_64-darwin11.0.0] user system total real Array.new 0.670000 0.160000 0.830000 ( 0.826589) Array#[]= with Array 16.160000 0.280000 16.440000 ( 16.597618) 使用している環境は - OS : Mac OS X 10.7 - CPU : Intel Core i5 - Memory : 4GB - compiler: gcc 4.2.1 です。 以上、よろしくお願いいたします。 -- http://redmine.ruby-lang.org