Skip to content

Instantly share code, notes, and snippets.

@rondevera
Created May 10, 2011 14:49

Revisions

  1. rondevera created this gist May 10, 2011.
    10 changes: 10 additions & 0 deletions results.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    Rehearsal ----------------------------------------------
    #one? 0.000000 0.000000 0.000000 ( 0.001843)
    #one? 0.000000 0.000000 0.000000 ( 0.002105)
    #kind.one? 0.010000 0.000000 0.010000 ( 0.005502)
    ------------------------------------- total: 0.010000sec

    user system total real
    #one? 0.000000 0.000000 0.000000 ( 0.002660)
    #one? 0.000000 0.000000 0.000000 ( 0.002275)
    #kind.one? 0.000000 0.000000 0.000000 ( 0.003826)
    49 changes: 49 additions & 0 deletions setup.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@
    class A
    attr_accessor :kind

    def initialize
    self.kind = 'one'
    end

    def one?
    self.kind == kind.to_s
    end
    end

    class B
    attr_accessor :kind

    def initialize
    self.kind = 'one'
    end

    %w[one two three four five].each do |kind|
    define_method("#{kind}?") do
    self.kind == kind.to_s
    end
    end
    end

    class C
    attr_accessor :kind

    def initialize
    self.kind = ActiveSupport::StringInquirer.new('one')
    end
    end



    Benchmark.bmbm do |x|
    x.report('#one?') do
    1_000.times { A.new.one? }
    end

    x.report('#one?') do
    1_000.times { B.new.one? }
    end

    x.report('#kind.one?') do
    1_000.times { C.new.kind.one? }
    end
    end