Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- require 'bson'
- require 'benchmark'
- TRIALS = 1000
- ARRAY_LENGTH = 1_000_000
- class Bar
- end
- class Foo
- def delete_at_test ary, delete_indexes
- delete_indexes.each { |index| ary.delete_at index }
- end
- def shift_test ary
- ary.shift
- ary.shift
- ary.shift
- ary.shift
- ary.shift
- ary.shift
- end
- def slice_test ary
- ary.slice! 0, 6
- end
- def big_array
- ary = []
- ARRAY_LENGTH.times { ary << Bar.new }
- ary
- end
- end
- foo = Foo.new
- a = foo.big_array
- b = foo.big_array
- c = foo.big_array
- Benchmark.bmbm(22) do |x|
- x.report('delete_at') do
- delete_indexes = [0,1,2,3,4,5,6].reverse
- TRIALS.times do
- foo.delete_at_test a, delete_indexes
- end
- end
- x.report('shift test') do
- TRIALS.times do
- foo.shift_test b
- end
- end
- x.report('slice test') do
- TRIALS.times do
- foo.slice_test c
- end
- end
- end
Add Comment
Please, Sign In to add comment