Sha256: cc0afefdcc9274ae304469a839d33d278842e32dae9d8827861d27f0e71cdd1a

Contents?: true

Size: 1.19 KB

Versions: 12

Compression:

Stored size: 1.19 KB

Contents

#!/usr/bin/env ruby

$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
require 'mongo'

include XGen::Mongo::Driver

TRIALS = 100000

def encode(doc)
  t0 = Time.new
  b = BSON.new
  TRIALS.times { |i|
    b = BSON.new
    b.serialize doc
  }
  print "took: #{Time.now.to_f - t0.to_f}\n"
  return b
end

def decode(bson)
  t0 = Time.new
  doc = nil
  TRIALS.times { |i|
    doc = bson.deserialize
  }
  print "took: #{Time.now.to_f - t0.to_f}\n"
  return doc
end

TEST_CASES = [{},
              {
                "hello" => "world"
              },
              {
                "hello" => "world",
                "mike" => "something",
                "here's" => "another"
              },
              {
                "int" => 200,
                "bool" => true,
                "an int" => 20,
                "a bool" => false
              },
              {
                "this" => 5,
                "is" => {"a" => true},
                "big" => [true, 5.5],
                "object" => nil
              }]

TEST_CASES.each { |doc|
  print "case #{doc.inspect}\n"
  print "enc bson\n"
  enc_bson = encode(doc)
  print "dec bson\n"
  raise "FAIL" unless doc == decode(enc_bson)
}

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
animehunter-mongo-0.9 bin/bson_benchmark.rb
mongodb-mongo-0.10.1 bin/bson_benchmark.rb
mongodb-mongo-0.10 bin/bson_benchmark.rb
mongodb-mongo-0.11.1 bin/bson_benchmark.rb
mongodb-mongo-0.11 bin/bson_benchmark.rb
mongodb-mongo-0.12 bin/bson_benchmark.rb
mongodb-mongo-0.6.5 bin/bson_benchmark.rb
mongodb-mongo-0.6.6 bin/bson_benchmark.rb
mongodb-mongo-0.6.7 bin/bson_benchmark.rb
mongodb-mongo-0.7 bin/bson_benchmark.rb
mongodb-mongo-0.8 bin/bson_benchmark.rb
mongodb-mongo-0.9 bin/bson_benchmark.rb