Sha256: f8b0ab0b6c8bd764b9fefe336262599051023f2947e3fefacbdffaf06dd68a57
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) require "rubygems" require "benchmark" require "mongoid" require "mongoid-eager-loading" Mongoid.configure do |config| config.master = Mongo::Connection.new.db("mongoid_perf_test", :logger => Logger.new($stdout, :info)) end Mongoid.master.collection("people").drop Mongoid.master.collection("posts").drop class Person include Mongoid::Document include Mongoid::Timestamps field :name references_many :posts end class Post include Mongoid::Document include Mongoid::Timestamps field :title referenced_in :person end 10000.times do |n| person = Person.create(:name => "Test_#{n}") person.posts.create(:title => "Test_#{2*n}") person.posts.create(:title => "Test_#{2*n+1}") end puts "Starting benchmark..." Benchmark.bm(60) do |bm| bm.report("Finding 10 posts with person, without eager loading") do Post.limit(10).each { |p| p.person.name } end bm.report("Finding 10 posts with person, with eager loading") do Post.limit(10).includes(:person).each { |p| p.person.name } end bm.report("Finding 50 posts with person, without eager loading") do Post.limit(50).each { |p| p.person.name } end bm.report("Finding 50 posts with person, with eager loading") do Post.limit(50).includes(:person).each { |p| p.person.name } end bm.report("Finding 100 posts with person, without eager loading") do Post.limit(100).each { |p| p.person.name } end bm.report("Finding 100 posts with person, with eager loading") do Post.limit(100).includes(:person).each { |p| p.person.name } end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mongoid-eager-loading-0.2.0 | benchmark/benchmark.rb |
mongoid-eager-loading-0.1.2 | benchmark/benchmark.rb |
mongoid-eager-loading-0.1.1 | benchmark/benchmark.rb |