Sha256: 4bf8a6772f18e40a9c4cb6a22d6e454b23cdb6353ac4387c72bd158f693e176c
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
require 'rubygems' ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) Bundler.require(:default) if defined?(Bundler) require "benchmark" require "draper" require "./performance/models" require "./performance/decorators" Benchmark.bm do |bm| puts "\n[ Exclusivelly using #method_missing for model delegation ]" [ 1_000, 10_000, 100_000 ].each do |i| puts "\n[ #{i} ]" bm.report("#new ") do i.times do |n| ProductDecorator.decorate(Product.new) end end bm.report("#hello_world ") do i.times do |n| ProductDecorator.decorate(Product.new).hello_world end end bm.report("#sample_class_method ") do i.times do |n| ProductDecorator.decorate(Product.new).class.sample_class_method end end end puts "\n[ Defining methods on method_missing first hit ]" [ 1_000, 10_000, 100_000 ].each do |i| puts "\n[ #{i} ]" bm.report("#new ") do i.times do |n| FastProductDecorator.decorate(FastProduct.new) end end bm.report("#hello_world ") do i.times do |n| FastProductDecorator.decorate(FastProduct.new).hello_world end end bm.report("#sample_class_method ") do i.times do |n| FastProductDecorator.decorate(FastProduct.new).class.sample_class_method end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
draper-0.10.0 | performance/bechmark.rb |