Sha256: 778a61e996f66007513f5a4ca34de1cbead543c0333b625ee566daa49d656e32

Contents?: true

Size: 1.7 KB

Versions: 158

Compression:

Stored size: 1.7 KB

Contents

require 'rubygems'
require 'active_resource'
require 'benchmark'

TIMES = (ENV['N'] || 10_000).to_i

# deep nested resource
attrs = {
  :id => 1,
  :name => 'Luis',
  :age => 21,
  :friends => [
    {
      :name => 'JK',
      :age => 24,
      :colors => ['red', 'green', 'blue'],
      :brothers => [
        {
          :name => 'Mateo',
          :age => 35,
          :children => [{ :name => 'Edith', :age => 5 }, { :name => 'Martha', :age => 4 }]
        },
        {
          :name => 'Felipe',
          :age => 33,
          :children => [{ :name => 'Bryan', :age => 1 }, { :name => 'Luke', :age => 0 }]
        }
      ]
    },
    {
      :name => 'Eduardo',
      :age => 20,
      :colors => [],
      :brothers => [
        {
          :name => 'Sebas',
          :age => 23,
          :children => [{ :name => 'Andres', :age => 0 }, { :name => 'Jorge', :age => 2 }]
        },
        {
          :name => 'Elsa',
          :age => 19,
          :children => [{ :name => 'Natacha', :age => 1 }]
        },
        {
          :name => 'Milena',
          :age => 16,
          :children => []
        }
      ]
    }
  ]
}

class Customer < ActiveResource::Base
  self.site = "http://37s.sunrise.i:3000"
end

module Nested
  class Customer < ActiveResource::Base
    self.site = "http://37s.sunrise.i:3000"
  end
end

Benchmark.bm(40) do |x|
  x.report('Model.new (instantiation)')              { TIMES.times { Customer.new } }
  x.report('Nested::Model.new (instantiation)')      { TIMES.times { Nested::Customer.new } }
  x.report('Model.new (setting attributes)')         { TIMES.times { Customer.new attrs } }
  x.report('Nested::Model.new (setting attributes)') { TIMES.times { Nested::Customer.new attrs } }
end

Version data entries

158 entries across 132 versions & 11 rubygems

Version Path
activeresource-3.2.22.5 examples/performance.rb
activeresource-3.2.22.4 examples/performance.rb
activeresource-3.2.22.3 examples/performance.rb
activeresource-3.2.22.2 examples/performance.rb
activeresource-3.2.22.1 examples/performance.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/activeresource-3.2.12/examples/performance.rb
activeresource-3.2.22 examples/performance.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/activeresource-3.2.12/examples/performance.rb
activeresource-3.2.21 examples/performance.rb
activeresource-3.2.20 examples/performance.rb
activeresource-3.2.19 examples/performance.rb
activeresource-3.2.18 examples/performance.rb
activeresource-3.2.17 examples/performance.rb
activeresource-3.2.16 examples/performance.rb
activeresource-3.2.15 examples/performance.rb
activeresource-3.2.15.rc3 examples/performance.rb
activeresource-3.2.15.rc2 examples/performance.rb
activeresource-3.2.15.rc1 examples/performance.rb
activeresource-3.2.14 examples/performance.rb
activeresource-3.2.14.rc2 examples/performance.rb