ksss/ruby — pull request #2 by ksss (2014-02-17 15:17:00+00:00)
Title: * array.c (rb_ary_shift_m): use shared instead of MEMMOVE if with arguments

```ruby
require 'benchmark'

n = 100000000
Benchmark.bm do |x|
ary = Array.new(n,0)
x.report("Array#shift"){ ary.shift }

ary = Array.new(n,0)
x.report("Array#shift 1"){ ary.shift 1 }
end
```

before

user system total real
Array#shift 0.000000 0.000000 0.000000 ( 0.000009)
Array#shift 1 0.270000 0.410000 0.680000 ( 0.763962)

after

user system total real
Array#shift 0.000000 0.000000 0.000000 ( 0.000011)
Array#shift 1 0.000000 0.000000 0.000000 ( 0.000011)