Skip to content

Instantly share code, notes, and snippets.

@tessi
Created September 9, 2013 21:27
Show Gist options
  • Select an option

  • Save tessi/6501753 to your computer and use it in GitHub Desktop.

Select an option

Save tessi/6501753 to your computer and use it in GitHub Desktop.

Revisions

  1. tessi created this gist Sep 9, 2013.
    7 changes: 7 additions & 0 deletions bench
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    ruby --version
    ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]

    ruby bench.rb
    user system total real
    babai1 1.700000 0.000000 1.700000 ( 1.707292)
    babai2 29.630000 0.010000 29.640000 ( 29.769966)
    25 changes: 25 additions & 0 deletions bench.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    require 'benchmark'
    iterations = 10_000
    arr = Array.new(1000) {(rand()*100).to_i}

    def max_babai1(arr)
    arr.group_by{|e| e}.max_by{|k,v| v.size}.first
    end

    def max_babai2(arr)
    arr.uniq.max_by{|e| arr.count(e)}
    end

    Benchmark.bm do |bm|
    bm.report('babai1') do
    iterations.times do
    max_babai1 arr
    end
    end

    bm.report('babai2') do
    iterations.times do
    max_babai2 arr
    end
    end
    end