回答編集履歴

1

訂正

2020/11/03 00:16

投稿

otn
otn

スコア85901

test CHANGED
@@ -34,46 +34,42 @@
34
34
 
35
35
  Benchmark.bm 10 do |r|
36
36
 
37
- array = A.times.to_a
38
-
39
37
  r.report "test1" do
40
38
 
41
- N.times { array = (array + [0] * B)[0...B] }
39
+ N.times { array = A.times.to_a; array = (array + [0] * B)[0...B] }
42
40
 
43
41
  end
44
42
 
45
- array = A.times.to_a
46
-
47
43
  r.report "test2" do
48
44
 
49
- N.times { array = array.push(*Array.new(B,0)).shift(B) }
45
+ N.times { array = A.times.to_a; array = array.push(*Array.new(B,0)).shift(B) }
50
46
 
51
47
  end
52
48
 
53
- array = A.times.to_a
54
-
55
49
  r.report "test2_1" do
56
50
 
57
- N.times { array = array.push(*Array.new(B,0)).take(B) }
51
+ N.times { array = A.times.to_a; array = array.push(*Array.new(B,0)).take(B) }
58
52
 
59
53
  end
60
54
 
61
- array = A.times.to_a
62
-
63
55
  r.report "test3" do
64
56
 
65
- N.times { array = array.concat([0]*(B-array.length)) }
57
+ N.times { array = A.times.to_a; array = array.concat([0]*(B-array.length)) }
66
58
 
67
59
  end
68
60
 
69
- array = A.times.to_a
70
-
71
61
  r.report "test3_1" do
72
62
 
73
- N.times { array = array.concat(Array.new(B-array.length, 0)) }
63
+ N.times { array = A.times.to_a; array = array.concat(Array.new(B-array.length, 0)) }
74
64
 
75
65
  end
76
66
 
77
67
  end
78
68
 
79
69
  ```
70
+
71
+ #追記:
72
+
73
+ すいません。ぼけてました。`N.times`を追加した時点で`array`の初期化を移動させないといけなかった。
74
+
75
+ コードを修正しました。