Skip to content

Instantly share code, notes, and snippets.

@whartonn
Created April 7, 2013 14:47

Revisions

  1. whartonn created this gist Apr 7, 2013.
    26 changes: 26 additions & 0 deletions benchmark_mod_even_vs_bit_even
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    def odd_or_even_mod(number)
    return "Even" if number % 2 == 0
    return "Odd"
    end
    def odd_or_even_bit(number)
    return "Even" if number & 1 == 0
    return "Odd"
    end

    require 'benchmark'
    Benchmark.bm(40) do |x|
    x.report ('mod even/odd') do
    100_000.times do
    odd_or_even_mod(948479784)
    odd_or_even_mod(948479785)
    end
    end
    x.report('bitwise even/odd') do
    100_000.times do
    odd_or_even_bit(948479784)
    odd_or_even_bit(948479785)
    end
    end
    end