rspec/rspec-mocks

View on GitHub
benchmarks/thread_safety.rb

Summary

Maintainability
A
0 mins
Test Coverage
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))

require 'benchmark'
require 'rspec/mocks'

Benchmark.bm do |bm|
  bm.report("fetching a proxy") do
    RSpec::Mocks.with_temporary_scope do
      o = Object.new
      100_000.times {
        RSpec::Mocks.space.proxy_for(o)
      }
    end
  end
end

# Without synchronize (not thread-safe):
#
#       user     system      total        real
# fetching a proxy  0.120000   0.000000   0.120000 (  0.141333)
#
# With synchronize (thread-safe):
#       user     system      total        real
# fetching a proxy  0.180000   0.000000   0.180000 (  0.189553)