Sha256: de8a0ef3d7dd03d2edb6fdba36f9463a8c334dc1397dafefc41ee94510cef28d

Contents?: true

Size: 1.08 KB

Versions: 11

Compression:

Stored size: 1.08 KB

Contents

$: << File.expand_path("../../lib", __FILE__)

require 'database_cleaner'
require 'mongoid'
require 'mongoid_token'
require 'benchmark'

Mongoid.configure do |config|
  config.connect_to("mongoid_token_benchmark")
end

DatabaseCleaner.strategy = :truncation

# start benchmarks

TOKEN_LENGTH = 8

class Link
  include Mongoid::Document
  include Mongoid::Token
  field :url
  token :length => TOKEN_LENGTH, :contains => :alphanumeric
end

class NoTokenLink
  include Mongoid::Document
  field :url
end

def create_link(token = true)
  if token
    Link.create(:url => "http://involved.com.au")
  else
    NoTokenLink.create(:url => "http://involved.com.au")
  end
end

Link.destroy_all
Link.create_indexes
num_records = [1, 50, 100, 1000, 2000, 3000, 4000]
puts "-- Alphanumeric token of length #{TOKEN_LENGTH} (#{62**TOKEN_LENGTH} possible tokens)"
Benchmark.bm do |b|
  num_records.each do |qty|
    b.report("#{qty.to_s.rjust(5, " ")} records    "){ qty.times{ create_link(false) } }
    b.report("#{qty.to_s.rjust(5, " ")} records tok"){ qty.times{ create_link } }
    Link.destroy_all
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
mongoid_token_r-4.0.0 benchmarks/benchmark.rb
mongoid_token-4.0.0 benchmarks/benchmark.rb
mongoid_token-3.0.0 benchmarks/benchmark.rb
mongoid_token-2.2.0 benchmarks/benchmark.rb
mongoid_token-2.1.2 benchmarks/benchmark.rb
mongoid_token-2.1.1 benchmarks/benchmark.rb
mongoid_token-2.1.0 benchmarks/benchmark.rb
mongoid_token-2.0.2 benchmarks/benchmark.rb
mongoid_token-2.0.1 benchmarks/benchmark.rb
mongoid_token-2.0.0 benchmarks/benchmark.rb
mongoid_token-1.1.1 benchmarks/benchmark.rb