Sha256: d2f55f5376f8d182847c877d5a28dfb5c91d9d56a071ecf26d4f3dd746ed2fdc

Contents?: true

Size: 804 Bytes

Versions: 49

Compression:

Stored size: 804 Bytes

Contents

require 'benchmark'
$LOAD_PATH << File.dirname(__FILE__) + '/../lib'

def time_in_fork(&block)
  read, write = IO.pipe
  Process.fork do
    write.puts Benchmark.realtime{ block.call }
  end
  Process.wait
  write.close
  read.read.tap do
    read.close
  end
end

class Array
  def avg
    map(&:to_f).inject(:+) / size
  end
end

def report(label, n = 10, &block)
  puts label
  puts "%.4f" % n.times.map{ time_in_fork &block }.avg
  puts
end

# make rubygems load specifications now so the
# time is not included below.
Gem::Specification._all

N = 10

report("require fog:", N)             { require 'fog' }
report("require fog/aws:", N)         { require 'fog/aws' }
report("require fog/aws/compute:", N) { require 'fog/aws/compute' }
report("require fog/aws/core:", N)    { require 'fog/aws/core'}

Version data entries

49 entries across 47 versions & 8 rubygems

Version Path
ns-fog-1.22.4 benchs/load_times.rb
ns-fog-1.22.3 benchs/load_times.rb
ns-fog-1.22.2 benchs/load_times.rb
fog-1.22.1 benchs/load_times.rb
fog-1.22.0 benchs/load_times.rb
fog-1.21.0 benchs/load_times.rb
fog-maestrodev-1.20.0.20140305101839 benchs/load_times.rb
fog-maestrodev-1.20.0.20140305101305 benchs/load_times.rb
fog-1.20.0 benchs/load_times.rb