fork download
  1. #! /usr/bin/env ruby
  2. require 'benchmark'
  3.  
  4. Benchmark.bmbm do |x|
  5.  
  6. iteration = 1_000_000
  7. input = [0,1,2,3,4,5,6,7,8,9]
  8.  
  9. x.report('inject proc') do
  10. iteration.times do
  11. input.inject(&:+)
  12. end
  13. end
  14.  
  15. x.report('inject symbol') do
  16. iteration.times do
  17. input.inject(:+)
  18. end
  19. end
  20.  
  21. x.report('inject block') do
  22. iteration.times do
  23. input.inject{|acc, curr| acc + curr}
  24. end
  25. end
  26.  
  27. end
  28.  
Success #stdin #stdout 3.14s 6576KB
stdin
Standard input is empty
stdout
Rehearsal -------------------------------------------------
inject proc     0.728000   0.000000   0.728000 (  0.731942)
inject symbol   0.120000   0.000000   0.120000 (  0.117521)
inject block    0.748000   0.000000   0.748000 (  0.751896)
---------------------------------------- total: 1.596000sec

                    user     system      total        real
inject proc     0.728000   0.000000   0.728000 (  0.730084)
inject symbol   0.116000   0.000000   0.116000 (  0.115039)
inject block    0.688000   0.000000   0.688000 (  0.690953)