71 lines
1.5 KiB
Plaintext
71 lines
1.5 KiB
Plaintext
|
#!/usr/bin/env ruby
|
||
|
#$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
|
||
|
#
|
||
|
# Note: Ruby 1.9 is faster than 1.8, as expected.
|
||
|
# This suite will be run against the installed version of ruby-mongo-driver.
|
||
|
# The c-extension, bson_ext, will be used if installed.
|
||
|
|
||
|
require 'rubygems'
|
||
|
require 'mongo'
|
||
|
|
||
|
large = {
|
||
|
'base_url' => 'http://www.example.com/test-me',
|
||
|
'total_word_count' => 6743,
|
||
|
'access_time' => Time.now,
|
||
|
'meta_tags' => {
|
||
|
'description' => 'i am a long description string',
|
||
|
'author' => 'Holly Man',
|
||
|
'dynamically_created_meta_tag' => 'who know\n what'
|
||
|
},
|
||
|
'page_structure' => {
|
||
|
'counted_tags' => 3450,
|
||
|
'no_of_js_attached' => 10,
|
||
|
'no_of_images' => 6
|
||
|
},
|
||
|
'harvested_words' => ['10gen','web','open','source','application','paas',
|
||
|
'platform-as-a-service','technology','helps',
|
||
|
'developers','focus','building','mongodb','mongo'] * 20
|
||
|
}
|
||
|
|
||
|
|
||
|
con = Mongo::Connection.new
|
||
|
|
||
|
db = con['benchmark']
|
||
|
col = db['bigdocs']
|
||
|
|
||
|
col.remove()
|
||
|
|
||
|
puts "Inserting 100,000 large documents..."
|
||
|
|
||
|
def get_batch(large)
|
||
|
batch = []
|
||
|
100.times do
|
||
|
batch << large.dup
|
||
|
end
|
||
|
batch
|
||
|
end
|
||
|
|
||
|
1000.times do
|
||
|
col.insert(get_batch(large))
|
||
|
end
|
||
|
GC.start
|
||
|
|
||
|
t1 = Time.now
|
||
|
cursor = col.find({}, :batch_size => 0)
|
||
|
200.times do
|
||
|
cursor.next_document
|
||
|
end
|
||
|
t2 = Time.now
|
||
|
puts "Database decides batch size: #{t2 - t1}"
|
||
|
|
||
|
|
||
|
t1 = Time.now
|
||
|
cursor = col.find({}, :batch_size => 100)
|
||
|
200.times do
|
||
|
cursor.next_document
|
||
|
end
|
||
|
t2 = Time.now
|
||
|
puts "Batch size of 100: #{t2 - t1}"
|
||
|
|
||
|
|