Sha256: 45f0cfd220f48f216778a60faa0651b97ad9e231f780bff76db18d527e24a169

Contents?: true

Size: 693 Bytes

Versions: 7

Compression:

Stored size: 693 Bytes

Contents

$:.unshift "../lib"

require 'benchmark'
require 'needle'

ITERATIONS = 100_000

registry = Needle::Registry.new
registry.register( :deferred, :model=>:singleton_deferred ) { Struct.new( :value ).new( 1 ) }
registry.register( :immediate, :model=>:singleton ) { Struct.new( :value ).new( 1 ) }

deferred = registry.deferred
immediate = registry.immediate

puts
puts "--------------------------------------------------------------------"
puts "Proxied method dispatch vs. direct method dispatch"
puts "#{ITERATIONS} iterations"
puts

Benchmark.bm(7) do |x|
  x.report( "proxy:" ) { ITERATIONS.times { deferred.value } }
  x.report( "direct:" ) { ITERATIONS.times { immediate.value } }
end

puts

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
needle-0.6.0 benchmarks/instantiability.rb
needle-0.9.0 benchmarks/instantiability.rb
needle-1.0.0 benchmarks/instantiability.rb
needle-1.1.0 benchmarks/instantiability.rb
needle-1.2.0 benchmarks/instantiability.rb
needle-1.2.1 benchmarks/instantiability.rb
needle-1.3.0 benchmarks/instantiability.rb