benchmarks/hash.rb
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 24 May 2013 17:55:42 +0100
branchbuiltin-class-support
changeset 2629 cedb88626902
parent 2598 94ae3f5f4df1
permissions -rwxr-xr-x
Closing branch.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2598
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     1
#!/usr/bin/env ruby
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     2
require 'benchmark'
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     3
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     4
def run_hash_test(n)
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     5
  table = {}
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     6
  count = 0
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     7
  1.upto(n) do |idx|
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     8
    table[idx.to_s(16)] = idx
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     9
  end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    10
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    11
  1.upto(n) do |idx|
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    12
    if table.has_key?(idx.to_s(10))
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    13
      count = count + 1
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    14
    end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    15
  end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    16
end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    17
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    18
results = Benchmark.bmbm do |bm|
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    19
  raise "Expecting one arg - num of iterations" if ARGV.size == 0
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    20
  n = ARGV[0].to_i
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    21
  bm.report { run_hash_test(n) }
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    22
end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    23
puts "EXECUTION TIME: #{results[0].real * 1000.0}"
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    24