Skip to content

Commit f7a5e94

Browse files
committed
array insert vs unshift
1 parent 53aa5e7 commit f7a5e94

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,22 @@ Comparison:
365365
Array#last: 7639254.5 i/s - 1.12x slower
366366
```
367367

368+
##### `Array#insert` vs `Array#unshift` [code](code/array/insert-vs-unshift.rb)
369+
370+
```
371+
$ ruby -v code/array/insert-vs-unshift.rb
372+
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin10.0]
373+
Calculating -------------------------------------
374+
Array#unshift 4.000 i/100ms
375+
Array#insert 1.000 i/100ms
376+
-------------------------------------------------
377+
Array#unshift 44.947 (± 6.7%) i/s - 224.000
378+
Array#insert 0.171 (± 0.0%) i/s - 1.000 in 5.841595s
379+
380+
Comparison:
381+
Array#unshift: 44.9 i/s
382+
Array#insert: 0.2 i/s - 262.56x slower
383+
```
368384

369385
### Enumerable
370386

code/array/insert-vs-unshift.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
require 'benchmark/ips'
2+
3+
Benchmark.ips do |x|
4+
x.report('Array#unshift') do
5+
array = []
6+
100_000.times { |i| array.unshift(i) }
7+
end
8+
9+
x.report('Array#insert') do
10+
array = []
11+
100_000.times { |i| array.insert(0, i) }
12+
end
13+
14+
x.compare!
15+
end

0 commit comments

Comments
 (0)