Sha256: 8ce0a15e8b2762b3eaeb074ac79258dff0c3687e1c8b67b05adc400de0c4004a

Contents?: true

Size: 399 Bytes

Versions: 20

Compression:

Stored size: 399 Bytes

Contents

require 'benchmark'

class Integer
  def fact1
    return 1 if zero?
    f = 1
    2.upto(self) { |n| f *= n }
    f
  end

  def fact2
    (2..self).inject(1){|fact,i| fact*i}
  end
end

Benchmark.bm do |b|
  n = 1000

  b.report("current") do
    n.times do
      (0..20).each {|i| i.fact1}
    end
  end

  b.report("inject") do
    n.times do
      (0..20).each {|i| i.fact2}
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
facets-2.9.2 work/bench/integer/bench_factorial.rb
facets-2.0.0 demo/bench/bench_factorial.rb
facets-2.0.1 demo/bench/integer/bench_factorial.rb
facets-2.0.2 demo/bench/integer/bench_factorial.rb
facets-2.1.0 demo/bench/integer/bench_factorial.rb
facets-2.0.3 demo/bench/integer/bench_factorial.rb
facets-2.0.4 demo/bench/integer/bench_factorial.rb
facets-2.0.5 demo/bench/integer/bench_factorial.rb
facets-2.1.1 demo/bench/integer/bench_factorial.rb
facets-2.1.2 demo/bench/integer/bench_factorial.rb
facets-2.1.3 demo/bench/integer/bench_factorial.rb
facets-2.3.0 demo/bench/integer/bench_factorial.rb
facets-2.2.0 demo/bench/integer/bench_factorial.rb
facets-2.4.0 demo/bench/integer/bench_factorial.rb
facets-2.2.1 demo/bench/integer/bench_factorial.rb
facets-2.4.1 demo/bench/integer/bench_factorial.rb
facets-2.4.4 demo/bench/integer/bench_factorial.rb
facets-2.4.3 demo/bench/integer/bench_factorial.rb
facets-2.4.2 demo/bench/integer/bench_factorial.rb
facets-2.4.5 demo/bench/integer/bench_factorial.rb