File: thread_safety.rb

package info (click to toggle)
ruby-rspec 3.13.0c0e0m0s1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,856 kB
  • sloc: ruby: 70,868; sh: 1,423; makefile: 99
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)