Guest User

Untitled

a guest
Jul 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. require 'rubygems'
  2. require 'bson'
  3. require 'benchmark'
  4.  
  5.  
  6. TRIALS = 1000
  7. ARRAY_LENGTH = 1_000_000
  8.  
  9. class Bar
  10.  
  11. end
  12.  
  13. class Foo
  14. def delete_at_test ary, delete_indexes
  15. delete_indexes.each { |index| ary.delete_at index }
  16. end
  17.  
  18. def shift_test ary
  19. ary.shift
  20. ary.shift
  21. ary.shift
  22. ary.shift
  23. ary.shift
  24. ary.shift
  25. end
  26.  
  27. def slice_test ary
  28. ary.slice! 0, 6
  29. end
  30.  
  31. def big_array
  32. ary = []
  33. ARRAY_LENGTH.times { ary << Bar.new }
  34. ary
  35. end
  36. end
  37.  
  38. foo = Foo.new
  39.  
  40. a = foo.big_array
  41. b = foo.big_array
  42. c = foo.big_array
  43.  
  44. Benchmark.bmbm(22) do |x|
  45.  
  46.  
  47. x.report('delete_at') do
  48. delete_indexes = [0,1,2,3,4,5,6].reverse
  49. TRIALS.times do
  50. foo.delete_at_test a, delete_indexes
  51. end
  52. end
  53.  
  54. x.report('shift test') do
  55. TRIALS.times do
  56. foo.shift_test b
  57. end
  58. end
  59.  
  60. x.report('slice test') do
  61. TRIALS.times do
  62. foo.slice_test c
  63. end
  64. end
  65.  
  66. end
Add Comment
Please, Sign In to add comment