#!/usr/bin/env ruby require 'rubygems' require 'mongo' include Mongo include GridFS db = Connection.new['benchmark-gridfs'] sample_data = File.open(File.join(File.dirname(__FILE__), 'sample_file.pdf'), 'r').read db['fs.files'].remove db['fs.chunks'].remove T = 5 length = sample_data.length mb = T * length / 1048576.0 @grid = Grid.new(db) t1 = Time.now ids = [] T.times do |n| ids << @grid.put(sample_data, "mongodb-new-#{n}.pdf") end puts "Grid Write: #{mb / (Time.now - t1)} mb/s" t1 = Time.now T.times do |n| GridStore.open(db, "mongodb.pdf-#{n}", 'w') do |f| f.write(sample_data) end end puts "GridStore Write: #{mb / (Time.now - t1)} mb/s" t1 = Time.now T.times do |n| data = @grid.get(ids[n]).read end puts "Grid Read: #{mb / (Time.now - t1)} mb/s" t1 = Time.now T.times do |n| old_data = GridStore.open(db, "mongodb.pdf-#{n}", 'r') do |f| f.read end end puts "GridStore Read: #{mb / (Time.now - t1)} mb/s"