回答編集履歴
1
訂正
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
|
+
コードを修正しました。
|