File: thread_safety.rb

package info (click to toggle)
ruby-rspec 3.9.0c2e2m1s3-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,612 kB
  • sloc: ruby: 67,456; sh: 1,572; makefile: 98
file content (24 lines) | stat: -rw-r--r-- 612 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$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)