Sha256: 7dc28d4a4cba4dadd02039eb089b35effdef10976ad72fa72b38158d5f01b0bf

Contents?: true

Size: 600 Bytes

Versions: 10

Compression:

Stored size: 600 Bytes

Contents

#!/usr/bin/env ruby -wKU

require "benchmark"
require "thread_safe"

hash  = {}
cache = ThreadSafe::Cache.new

ENTRIES = 10_000

ENTRIES.times do |i|
  hash[i]  = i
  cache[i] = i
end

TESTS = 40_000_000
Benchmark.bmbm do |results|
  key = rand(10_000)

  results.report('Hash#[]') do
    TESTS.times { hash[key] }
  end

  results.report('Cache#[]') do
    TESTS.times { cache[key] }
  end

  results.report('Hash#each_pair') do
    (TESTS / ENTRIES).times { hash.each_pair {|k,v| v} }
  end

  results.report('Cache#each_pair') do
    (TESTS / ENTRIES).times { cache.each_pair {|k,v| v} }
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
thread_safe-0.1.3 examples/bench_cache.rb
thread_safe-0.1.3-java examples/bench_cache.rb
thread_safe-ianunruh-0.1.1 examples/bench_cache.rb
thread_safe-ianunruh-0.1.1-java examples/bench_cache.rb
thread_safe-0.1.2 examples/bench_cache.rb
thread_safe-0.1.2-java examples/bench_cache.rb
thread_safe-0.1.1 examples/bench_cache.rb
thread_safe-0.1.1-java examples/bench_cache.rb
challah-1.0.0 vendor/bundle/gems/thread_safe-0.1.0/examples/bench_cache.rb
thread_safe-0.1.0 examples/bench_cache.rb