Bug #5127
closed 
    ruby 1.9.3 prev1 で Array#[]=( Array.new ) が1.9.2より2倍遅い
Description
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
 です。
以上、よろしくお願いいたします。