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.0.rc1 examples/performance.rb
activeresource-3.1.3 examples/performance.rb
activeresource-3.1.2 examples/performance.rb
activeresource-3.1.2.rc2 examples/performance.rb
activeresource-3.1.2.rc1 examples/performance.rb
activeresource-3.1.1 examples/performance.rb
activeresource-3.1.1.rc3 examples/performance.rb
activeresource-3.1.1.rc2 examples/performance.rb
activeresource-3.1.1.rc1 examples/performance.rb
activeresource-3.1.0 examples/performance.rb
activeresource-3.1.0.rc8 examples/performance.rb
activeresource-3.1.0.rc6 examples/performance.rb
activeresource-3.1.0.rc5 examples/performance.rb
activeresource-3.1.0.rc4 examples/performance.rb
activeresource-3.1.0.rc3 examples/performance.rb
activeresource-3.1.0.rc2 examples/performance.rb
activeresource-3.1.0.rc1 examples/performance.rb
activeresource-3.1.0.beta1 examples/performance.rb