[Gary] profiling for both C and Ruby

This commit is contained in:
Gary Murakami 2012-04-16 17:28:48 -04:00
parent 52cbaa689f
commit ba0de1bc26
5 changed files with 429 additions and 200 deletions

View File

@ -16,6 +16,7 @@ group :development, :test do
gem "test-unit" gem "test-unit"
gem "ci_reporter" gem "ci_reporter"
gem "ruby-prof" unless RUBY_PLATFORM =~ /java/ gem "ruby-prof" unless RUBY_PLATFORM =~ /java/
gem "perftools.rb" unless RUBY_PLATFORM =~ /java/
# Java # Java
platforms :jruby do platforms :jruby do

View File

@ -27,16 +27,22 @@
<div id="placeholder"></div> <div id="placeholder"></div>
<script type="text/javascript"> <script type="text/javascript">
function genOpXY(a, xMax, base, gen, op, xKey, yKey) { function genOpXY(a, xMax, plotSpec, xKey, yKey) {
var genOpA = $.grep(a, function(e, i){return (e.exp2 <= xMax && e.base == base && e.generator == gen && e.operation == op);}); var genOpA = $.grep(a, function(e, i){
if (e.exp2 > xMax) return false;
for (var key in plotSpec) {
if (e[key] != plotSpec[key]) return false;
}
return true;
});
return $.map(genOpA, function(e, i){return [[e[xKey], e[yKey]]];}); return $.map(genOpA, function(e, i){return [[e[xKey], e[yKey]]];});
} }
function flotSeries(expSeries, xMax, a) { function flotSeries(expSeries, xMax, plotSpecs) {
return $.map(a, function(e, i){ return $.map(plotSpecs, function(plotSpec, i){
var base = e[0]; gen = e[1]; var op = e[2]; var base = plotSpec.base; var gen = plotSpec.generator; var op = plotSpec.operation;
return { return {
label: gen + '-' + base, label: gen + '-' + base,
data: genOpXY(expSeries, xMax, base, gen, op, 'exp2', 'ops'), data: genOpXY(expSeries, xMax, plotSpec, 'exp2', 'ops'),
lines: { show: true }, lines: { show: true },
points: { show: true } points: { show: true }
}; };
@ -66,50 +72,56 @@ $(function () {
// comment pending // comment pending
var graph = [ var graph = [
[ 'value_string_size insert', 14, [ [ 'value_string_size insert C', 14,
[2, 'value_string_size', 'insert'] [
{ base:2, generator:'value_string_size', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'key_string_size insert', 14, [ [ 'key_string_size insert C', 14,
[2, 'key_string_size', 'insert'] [
{ base:2, generator:'key_string_size', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'array_size_fixnum insert', 12, [ [ 'array_size_fixnum insert C', 12,
[2, 'array_size_fixnum', 'insert'] [
{ base:2, generator:'array_size_fixnum', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'hash_size_fixnum insert', 12, [ [ 'hash_size_fixnum insert C', 12,
[2, 'hash_size_fixnum', 'insert'] [
{ base:2, generator:'hash_size_fixnum', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'array_nest_fixnum insert', 12, [ [ 'array_nest_fixnum insert C', 12,
[2, 'array_nest_fixnum', 'insert'], [
[4, 'array_nest_fixnum', 'insert'], { base:2, generator:'array_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[8, 'array_nest_fixnum', 'insert'], { base:4, generator:'array_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[16, 'array_nest_fixnum', 'insert'], { base:8, generator:'array_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[32, 'array_nest_fixnum', 'insert'] { base:16, generator:'array_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
{ base:32, generator:'array_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'hash_nest_fixnum insert', 12, [ [ 'hash_nest_fixnum insert C', 12,
[2, 'hash_nest_fixnum', 'insert'], [
[4, 'hash_nest_fixnum', 'insert'], { base:2, generator:'hash_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[8, 'hash_nest_fixnum', 'insert'], { base:4, generator:'hash_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[16, 'hash_nest_fixnum', 'insert'], { base:8, generator:'hash_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
[32, 'hash_nest_fixnum', 'insert'] { base:16, generator:'hash_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' },
{ base:32, generator:'hash_nest_fixnum', operation:'insert', mongo_driver_mode: 'c' }
] ]
], ],
[ 'compare array_size_fixnum hash_size_fixnum insert', 12, [ [ 'compare array_size_fixnum hash_size_fixnum insert C', 12,
[2, 'array_size_fixnum', 'insert'], [
[2, 'hash_size_fixnum', 'insert'] { base:2, generator:'array_size_fixnum', operation:'insert', mongo_driver_mode: 'c' },
{ base:2, generator:'hash_size_fixnum', operation:'insert', mongo_driver_mode: 'c' }
]
] ]
],
]; ];
$.each(graph, function(i, e){ $.each(graph, function(i, e){
var title = e[0]; var title = e[0];
var xMax = e[1]; var xMax = e[1];
var baseSeriesGenOp = e[2]; var plotSpecs = e[2];
var series = flotSeries(expSeries, xMax, baseSeriesGenOp); var series = flotSeries(expSeries, xMax, plotSpecs);
doPlot(title, series); doPlot(title, series);
}); });

View File

@ -1,137 +1,274 @@
expSeries = [ expSeries = [
{"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.05,"etime":2.18,"rtime":13.99,"ops":13585.4,"usec":73.6}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.65,"etime":0.36,"rtime":11.03,"ops":13264.2,"usec":75.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.0,"etime":2.82,"rtime":12.5,"ops":13653.3,"usec":73.2}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.8,"etime":0.35,"rtime":12.08,"ops":13061.1,"usec":76.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.09,"etime":2.79,"rtime":14.45,"ops":13531.5,"usec":73.9}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.89,"etime":0.36,"rtime":12.21,"ops":12942.3,"usec":77.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.0,"etime":2.87,"rtime":12.39,"ops":13653.3,"usec":73.2}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.92,"etime":0.36,"rtime":12.42,"ops":12903.1,"usec":77.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":9.95,"etime":2.98,"rtime":12.09,"ops":13721.9,"usec":72.9}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":9.38,"etime":0.38,"rtime":11.86,"ops":12843.3,"usec":77.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.04,"etime":2.9,"rtime":12.73,"ops":13598.9,"usec":73.5}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":10.06,"etime":0.37,"rtime":12.69,"ops":12723.7,"usec":78.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.23,"etime":3.58,"rtime":15.43,"ops":13346.3,"usec":74.9}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":9.42,"etime":0.38,"rtime":13.3,"ops":12788.7,"usec":78.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.19,"etime":3.49,"rtime":12.44,"ops":13398.7,"usec":74.6}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":10.01,"etime":0.37,"rtime":13.4,"ops":12787.1,"usec":78.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.71,"etime":3.74,"rtime":17.6,"ops":12748.2,"usec":78.4}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":10.42,"etime":2.75,"rtime":11.88,"ops":12284.1,"usec":81.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.92,"etime":3.86,"rtime":16.04,"ops":12903.1,"usec":77.5}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":10.27,"etime":3.16,"rtime":11.69,"ops":11730.3,"usec":85.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":10.39,"etime":5.85,"rtime":13.78,"ops":12319.4,"usec":81.2}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":113777,"utime":9.9,"etime":4.54,"rtime":11.59,"ops":11492.6,"usec":87.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":113777,"utime":10.32,"etime":4.67,"rtime":17.28,"ops":11024.9,"usec":90.7}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":102399,"utime":9.67,"etime":3.59,"rtime":12.37,"ops":10589.3,"usec":94.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":102399,"utime":10.47,"etime":21.54,"rtime":20.57,"ops":9780.2,"usec":102.2}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":93090,"utime":9.82,"etime":4.13,"rtime":13.61,"ops":9479.6,"usec":105.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":73142,"utime":9.61,"etime":9.64,"rtime":18.79,"ops":7611.0,"usec":131.4}, {"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":10.76,"etime":7.65,"rtime":22.1,"ops":7320.5,"usec":136.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":51200,"utime":10.02,"etime":9.1,"rtime":107.18,"ops":5109.8,"usec":195.7}, {"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":48761,"utime":9.77,"etime":7.11,"rtime":16.75,"ops":4990.9,"usec":200.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":34133,"utime":10.8,"etime":9.43,"rtime":169.25,"ops":3160.5,"usec":316.4}, {"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":32000,"utime":10.19,"etime":6.97,"rtime":18.3,"ops":3140.3,"usec":318.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.29,"etime":37.42,"rtime":12.43,"ops":13778.3,"usec":72.6}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":9.46,"etime":0.38,"rtime":14.86,"ops":12734.7,"usec":78.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":9.88,"etime":5.55,"rtime":12.64,"ops":13819.1,"usec":72.4}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":9.37,"etime":0.38,"rtime":11.96,"ops":12857.0,"usec":77.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"key_string_size","operation":"insert","iterations":146285,"utime":10.62,"etime":7.39,"rtime":13.45,"ops":13774.5,"usec":72.6}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.87,"etime":0.36,"rtime":13.23,"ops":12968.6,"usec":77.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"key_string_size","operation":"insert","iterations":146285,"utime":11.03,"etime":4.05,"rtime":15.9,"ops":13262.5,"usec":75.4}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.72,"etime":0.37,"rtime":12.27,"ops":13168.7,"usec":75.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.45,"etime":3.92,"rtime":17.96,"ops":12248.8,"usec":81.6}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.9,"etime":0.36,"rtime":12.47,"ops":12929.3,"usec":77.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.26,"etime":5.27,"rtime":13.0,"ops":12475.6,"usec":80.2}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.95,"etime":0.37,"rtime":13.1,"ops":12864.3,"usec":77.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.96,"etime":3.59,"rtime":17.6,"ops":12457.4,"usec":80.3}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.02,"etime":0.37,"rtime":12.69,"ops":12774.5,"usec":78.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.67,"etime":4.46,"rtime":19.46,"ops":12796.0,"usec":78.1}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":8.96,"etime":0.38,"rtime":12.73,"ops":12698.3,"usec":78.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.83,"etime":11.72,"rtime":18.71,"ops":13021.4,"usec":76.8}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.42,"etime":2.77,"rtime":11.79,"ops":12284.1,"usec":81.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":10.16,"etime":6.84,"rtime":20.55,"ops":12598.3,"usec":79.4}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":10.32,"etime":4.4,"rtime":11.75,"ops":11673.4,"usec":85.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":10.08,"etime":5.47,"rtime":16.68,"ops":11951.4,"usec":83.7}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":10.28,"etime":4.02,"rtime":12.73,"ops":11067.8,"usec":90.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"key_string_size","operation":"insert","iterations":107789,"utime":10.05,"etime":6.64,"rtime":16.54,"ops":10725.3,"usec":93.2}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"key_string_size","operation":"insert","iterations":93090,"utime":9.33,"etime":5.66,"rtime":13.53,"ops":9977.5,"usec":100.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.09,"etime":8.32,"rtime":46.2,"ops":9387.6,"usec":106.5}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.84,"etime":5.81,"rtime":18.25,"ops":8672.1,"usec":115.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"key_string_size","operation":"insert","iterations":68266,"utime":9.84,"etime":7.96,"rtime":154.74,"ops":6937.6,"usec":144.1}, {"base":2,"power":13,"size":8192,"exp2":13,"generator":"key_string_size","operation":"insert","iterations":68266,"utime":10.37,"etime":7.91,"rtime":20.37,"ops":6583.0,"usec":151.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"key_string_size","operation":"insert","iterations":46545,"utime":10.03,"etime":74.96,"rtime":33.71,"ops":4640.6,"usec":215.5}, {"base":2,"power":14,"size":16384,"exp2":14,"generator":"key_string_size","operation":"insert","iterations":42666,"utime":9.8,"etime":9.71,"rtime":19.42,"ops":4353.7,"usec":229.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"key_string_size","operation":"insert","iterations":28444,"utime":10.67,"etime":69.27,"rtime":245.7,"ops":2665.8,"usec":375.1}, {"base":2,"power":15,"size":32768,"exp2":15,"generator":"key_string_size","operation":"insert","iterations":25599,"utime":9.95,"etime":7.33,"rtime":20.6,"ops":2572.8,"usec":388.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"array_size_fixnum","operation":"insert","iterations":128000,"utime":10.07,"etime":21.69,"rtime":13.13,"ops":12711.0,"usec":78.7}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":9.85,"etime":0.39,"rtime":21.54,"ops":12230.5,"usec":81.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"array_size_fixnum","operation":"insert","iterations":113777,"utime":9.99,"etime":4.61,"rtime":12.78,"ops":11389.1,"usec":87.8}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":10.6,"etime":0.4,"rtime":14.07,"ops":11365.1,"usec":88.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"array_size_fixnum","operation":"insert","iterations":107789,"utime":10.11,"etime":4.46,"rtime":13.33,"ops":10661.6,"usec":93.8}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_size_fixnum","operation":"insert","iterations":102399,"utime":9.59,"etime":0.22,"rtime":12.65,"ops":10677.7,"usec":93.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"array_size_fixnum","operation":"insert","iterations":93090,"utime":11.0,"etime":4.18,"rtime":14.32,"ops":8462.7,"usec":118.2}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_size_fixnum","operation":"insert","iterations":93090,"utime":10.48,"etime":0.25,"rtime":13.28,"ops":8882.6,"usec":112.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"array_size_fixnum","operation":"insert","iterations":60235,"utime":10.01,"etime":2.99,"rtime":12.49,"ops":6017.5,"usec":166.2}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_size_fixnum","operation":"insert","iterations":63999,"utime":9.53,"etime":0.35,"rtime":11.62,"ops":6715.5,"usec":148.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"array_size_fixnum","operation":"insert","iterations":36571,"utime":9.42,"etime":2.46,"rtime":11.19,"ops":3882.3,"usec":257.6}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_size_fixnum","operation":"insert","iterations":42666,"utime":9.43,"etime":0.24,"rtime":10.85,"ops":4524.5,"usec":221.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"array_size_fixnum","operation":"insert","iterations":23272,"utime":10.3,"etime":1.21,"rtime":12.05,"ops":2259.4,"usec":442.6}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_size_fixnum","operation":"insert","iterations":26947,"utime":9.96,"etime":0.4,"rtime":10.76,"ops":2705.5,"usec":369.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"array_size_fixnum","operation":"insert","iterations":11636,"utime":9.36,"etime":1.36,"rtime":11.08,"ops":1243.2,"usec":804.4}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_size_fixnum","operation":"insert","iterations":15999,"utime":10.43,"etime":0.33,"rtime":11.28,"ops":1533.9,"usec":651.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"array_size_fixnum","operation":"insert","iterations":6399,"utime":9.77,"etime":1.64,"rtime":11.52,"ops":655.0,"usec":1526.8}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_size_fixnum","operation":"insert","iterations":7529,"utime":9.05,"etime":0.35,"rtime":11.08,"ops":831.9,"usec":1202.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"array_size_fixnum","operation":"insert","iterations":3199,"utime":9.56,"etime":1.11,"rtime":36.91,"ops":334.6,"usec":2988.4}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_size_fixnum","operation":"insert","iterations":3999,"utime":8.88,"etime":0.32,"rtime":9.52,"ops":450.3,"usec":2220.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_size_fixnum","operation":"insert","iterations":1599,"utime":9.56,"etime":0.29,"rtime":37.42,"ops":167.3,"usec":5978.7}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_size_fixnum","operation":"insert","iterations":2133,"utime":9.24,"etime":0.3,"rtime":9.34,"ops":230.8,"usec":4331.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_size_fixnum","operation":"insert","iterations":888,"utime":10.28,"etime":0.39,"rtime":12.27,"ops":86.4,"usec":11576.6}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_size_fixnum","operation":"insert","iterations":1142,"utime":9.67,"etime":0.27,"rtime":9.7,"ops":118.1,"usec":8467.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_size_fixnum","operation":"insert","iterations":399,"utime":9.25,"etime":0.23,"rtime":12.18,"ops":43.1,"usec":23183.0}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_size_fixnum","operation":"insert","iterations":615,"utime":10.59,"etime":0.25,"rtime":11.02,"ops":58.1,"usec":17219.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"array_size_fixnum","operation":"insert","iterations":222,"utime":10.27,"etime":0.54,"rtime":14.75,"ops":21.6,"usec":46261.3}, {"base":2,"power":13,"size":8192,"exp2":13,"generator":"array_size_fixnum","operation":"insert","iterations":285,"utime":9.67,"etime":0.24,"rtime":9.68,"ops":29.5,"usec":33929.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"array_size_fixnum","operation":"insert","iterations":111,"utime":10.16,"etime":0.43,"rtime":49.32,"ops":10.9,"usec":91531.5}, {"base":2,"power":14,"size":16384,"exp2":14,"generator":"array_size_fixnum","operation":"insert","iterations":142,"utime":9.99,"etime":0.21,"rtime":10.05,"ops":14.2,"usec":70352.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_size_fixnum","operation":"insert","iterations":146285,"utime":10.73,"etime":0.38,"rtime":15.22,"ops":13633.3,"usec":73.3}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.77,"etime":0.39,"rtime":11.09,"ops":12330.6,"usec":81.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_size_fixnum","operation":"insert","iterations":136533,"utime":9.91,"etime":9.02,"rtime":14.61,"ops":13777.3,"usec":72.6}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_size_fixnum","operation":"insert","iterations":113777,"utime":9.09,"etime":0.39,"rtime":12.37,"ops":12516.7,"usec":79.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_size_fixnum","operation":"insert","iterations":146285,"utime":10.78,"etime":4.55,"rtime":15.01,"ops":13570.0,"usec":73.7}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.72,"etime":0.37,"rtime":15.23,"ops":12394.0,"usec":80.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_size_fixnum","operation":"insert","iterations":136533,"utime":10.25,"etime":4.34,"rtime":15.26,"ops":13320.3,"usec":75.1}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_size_fixnum","operation":"insert","iterations":127999,"utime":10.47,"etime":0.38,"rtime":15.19,"ops":12225.3,"usec":81.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.77,"etime":6.15,"rtime":14.85,"ops":12330.6,"usec":81.1}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_size_fixnum","operation":"insert","iterations":107789,"utime":9.55,"etime":0.41,"rtime":14.58,"ops":11286.8,"usec":88.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_size_fixnum","operation":"insert","iterations":113777,"utime":9.76,"etime":4.1,"rtime":17.57,"ops":11657.5,"usec":85.8}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_size_fixnum","operation":"insert","iterations":102399,"utime":9.94,"etime":0.22,"rtime":21.32,"ops":10301.7,"usec":97.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_size_fixnum","operation":"insert","iterations":102399,"utime":10.33,"etime":5.1,"rtime":33.75,"ops":9912.8,"usec":100.9}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_size_fixnum","operation":"insert","iterations":93090,"utime":9.72,"etime":7.32,"rtime":17.43,"ops":9577.2,"usec":104.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_size_fixnum","operation":"insert","iterations":78769,"utime":9.81,"etime":7.31,"rtime":25.05,"ops":8029.5,"usec":124.5}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_size_fixnum","operation":"insert","iterations":78769,"utime":10.07,"etime":5.69,"rtime":20.3,"ops":7822.1,"usec":127.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_size_fixnum","operation":"insert","iterations":51199,"utime":8.82,"etime":7.33,"rtime":33.57,"ops":5804.9,"usec":172.3}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_size_fixnum","operation":"insert","iterations":60235,"utime":10.42,"etime":7.43,"rtime":25.25,"ops":5780.7,"usec":173.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"utime":9.93,"etime":8.05,"rtime":43.05,"ops":3682.9,"usec":271.5}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"utime":9.59,"etime":6.82,"rtime":20.1,"ops":3813.5,"usec":262.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_size_fixnum","operation":"insert","iterations":21333,"utime":10.28,"etime":6.04,"rtime":37.91,"ops":2075.2,"usec":481.9}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_size_fixnum","operation":"insert","iterations":21333,"utime":9.62,"etime":5.35,"rtime":20.61,"ops":2217.6,"usec":450.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_size_fixnum","operation":"insert","iterations":12799,"utime":11.29,"etime":2.99,"rtime":32.58,"ops":1133.7,"usec":882.1}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_size_fixnum","operation":"insert","iterations":11636,"utime":9.88,"etime":3.24,"rtime":11.71,"ops":1177.7,"usec":849.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_size_fixnum","operation":"insert","iterations":5818,"utime":10.45,"etime":1.37,"rtime":76.14,"ops":556.7,"usec":1796.1}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_size_fixnum","operation":"insert","iterations":6399,"utime":10.45,"etime":1.51,"rtime":12.59,"ops":612.3,"usec":1633.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_size_fixnum","operation":"insert","iterations":2461,"utime":10.44,"etime":1.42,"rtime":47.07,"ops":235.7,"usec":4242.2}, {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_size_fixnum","operation":"insert","iterations":2909,"utime":10.23,"etime":0.63,"rtime":12.68,"ops":284.4,"usec":3516.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"utime":8.67,"etime":0.93,"rtime":21.97,"ops":83.9,"usec":11925.7}, {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_size_fixnum","operation":"insert","iterations":1599,"utime":9.81,"etime":0.2,"rtime":19.81,"ops":163.0,"usec":6135.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_size_fixnum","operation":"insert","iterations":615,"utime":10.13,"etime":1.25,"rtime":34.35,"ops":60.7,"usec":16471.5}, {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"utime":10.13,"etime":0.24,"rtime":13.06,"ops":71.8,"usec":13934.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":16,"size":65536,"exp2":16,"generator":"hash_size_fixnum","operation":"insert","iterations":333,"utime":10.4,"etime":1.29,"rtime":38.32,"ops":32.0,"usec":31231.2}, {"base":2,"power":16,"size":65536,"exp2":16,"generator":"hash_size_fixnum","operation":"insert","iterations":363,"utime":10.39,"etime":0.41,"rtime":12.07,"ops":34.9,"usec":28622.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":17,"size":131072,"exp2":17,"generator":"hash_size_fixnum","operation":"insert","iterations":125,"utime":8.95,"etime":0.83,"rtime":117.84,"ops":14.0,"usec":71600.0}, {"base":2,"power":17,"size":131072,"exp2":17,"generator":"hash_size_fixnum","operation":"insert","iterations":166,"utime":9.92,"etime":0.36,"rtime":13.75,"ops":16.7,"usec":59759.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":146285,"utime":9.95,"etime":0.45,"rtime":18.79,"ops":14702.0,"usec":68.0}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.3,"etime":0.39,"rtime":12.28,"ops":13255.6,"usec":75.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"array_nest_fixnum","operation":"insert","iterations":120470,"utime":10.06,"etime":6.83,"rtime":12.96,"ops":11975.1,"usec":83.5}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_nest_fixnum","operation":"insert","iterations":113777,"utime":9.92,"etime":0.41,"rtime":24.02,"ops":11469.5,"usec":87.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.29,"etime":5.96,"rtime":19.01,"ops":9046.6,"usec":110.5}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":9.92,"etime":0.24,"rtime":18.27,"ops":9384.1,"usec":106.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":56888,"utime":9.32,"etime":4.96,"rtime":229.02,"ops":6103.9,"usec":163.8}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":9.9,"etime":0.33,"rtime":15.23,"ops":6895.6,"usec":145.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":36571,"utime":9.8,"etime":3.13,"rtime":11.34,"ops":3731.7,"usec":268.0}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":39384,"utime":8.8,"etime":0.26,"rtime":13.5,"ops":4475.5,"usec":223.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":19692,"utime":9.41,"etime":1.41,"rtime":49.94,"ops":2092.7,"usec":477.9}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":25599,"utime":9.55,"etime":0.2,"rtime":13.57,"ops":2680.5,"usec":373.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":10666,"utime":9.47,"etime":1.96,"rtime":16.72,"ops":1126.3,"usec":887.9}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":13473,"utime":9.11,"etime":0.39,"rtime":10.1,"ops":1478.9,"usec":676.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"array_nest_fixnum","operation":"insert","iterations":5818,"utime":9.94,"etime":0.64,"rtime":18.24,"ops":585.3,"usec":1708.5}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_nest_fixnum","operation":"insert","iterations":7999,"utime":10.88,"etime":0.33,"rtime":11.1,"ops":735.2,"usec":1360.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":2909,"utime":9.63,"etime":0.99,"rtime":11.05,"ops":302.1,"usec":3310.4}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":3555,"utime":9.45,"etime":0.37,"rtime":9.64,"ops":376.2,"usec":2658.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":1454,"utime":9.68,"etime":0.73,"rtime":19.38,"ops":150.2,"usec":6657.5}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":1777,"utime":8.96,"etime":0.35,"rtime":9.0,"ops":198.3,"usec":5042.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":727,"utime":9.63,"etime":0.23,"rtime":10.92,"ops":75.5,"usec":13246.2}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1000,"utime":10.02,"etime":0.31,"rtime":10.06,"ops":99.8,"usec":10020.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_nest_fixnum","operation":"insert","iterations":363,"utime":9.44,"etime":0.21,"rtime":10.43,"ops":38.5,"usec":26005.5}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_nest_fixnum","operation":"insert","iterations":500,"utime":9.81,"etime":0.3,"rtime":9.84,"ops":51.0,"usec":19620.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":181,"utime":9.32,"etime":0.17,"rtime":9.94,"ops":19.4,"usec":51491.7}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":266,"utime":10.23,"etime":0.28,"rtime":10.24,"ops":26.0,"usec":38458.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":157538,"utime":10.86,"etime":0.36,"rtime":14.97,"ops":14506.3,"usec":68.9}, {"base":4,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":9.79,"etime":0.36,"rtime":12.19,"ops":13074.6,"usec":76.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":1,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":102399,"utime":9.91,"etime":9.4,"rtime":12.8,"ops":10332.9,"usec":96.8}, {"base":4,"power":1,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":9.44,"etime":0.24,"rtime":21.92,"ops":9861.2,"usec":101.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":2,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":51199,"utime":10.38,"etime":4.53,"rtime":12.14,"ops":4932.5,"usec":202.7}, {"base":4,"power":2,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":51199,"utime":9.5,"etime":0.75,"rtime":14.08,"ops":5389.4,"usec":185.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":3,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":16000,"utime":9.83,"etime":2.13,"rtime":10.66,"ops":1627.7,"usec":614.4}, {"base":4,"power":3,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":19692,"utime":9.92,"etime":0.26,"rtime":12.12,"ops":1985.1,"usec":503.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":4,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":3999,"utime":9.08,"etime":0.92,"rtime":33.64,"ops":440.4,"usec":2270.6}, {"base":4,"power":4,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":5333,"utime":9.2,"etime":0.23,"rtime":10.05,"ops":579.7,"usec":1725.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":5,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1142,"utime":10.01,"etime":0.73,"rtime":11.07,"ops":114.1,"usec":8765.3}, {"base":4,"power":5,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1333,"utime":9.2,"etime":0.24,"rtime":9.45,"ops":144.9,"usec":6901.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":6,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":307,"utime":10.51,"etime":0.27,"rtime":11.15,"ops":29.2,"usec":34234.5}, {"base":4,"power":6,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":380,"utime":10.25,"etime":0.41,"rtime":10.27,"ops":37.1,"usec":26973.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":9.35,"etime":0.36,"rtime":12.96,"ops":14602.5,"usec":68.5}, {"base":8,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.39,"etime":0.35,"rtime":18.67,"ops":13140.8,"usec":76.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":1,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":10.54,"etime":11.18,"rtime":12.79,"ops":8096.1,"usec":123.5}, {"base":8,"power":1,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":78769,"utime":9.55,"etime":0.27,"rtime":16.66,"ops":8248.1,"usec":121.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":2,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":18285,"utime":9.95,"etime":3.08,"rtime":12.16,"ops":1837.7,"usec":544.2}, {"base":8,"power":2,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":10.43,"etime":0.23,"rtime":15.22,"ops":2231.3,"usec":448.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":3,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":2461,"utime":9.29,"etime":1.07,"rtime":10.3,"ops":264.9,"usec":3774.9}, {"base":8,"power":3,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":3199,"utime":9.25,"etime":0.19,"rtime":11.6,"ops":345.8,"usec":2891.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":4,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":307,"utime":9.05,"etime":0.36,"rtime":16.31,"ops":33.9,"usec":29478.8}, {"base":8,"power":4,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":470,"utime":10.4,"etime":0.33,"rtime":10.69,"ops":45.2,"usec":22127.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":146285,"utime":10.01,"etime":0.35,"rtime":23.91,"ops":14613.9,"usec":68.4}, {"base":16,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.51,"etime":0.35,"rtime":13.18,"ops":12990.8,"usec":77.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":1,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":56888,"utime":10.16,"etime":4.5,"rtime":13.81,"ops":5599.2,"usec":178.6}, {"base":16,"power":1,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":60235,"utime":9.99,"etime":0.37,"rtime":18.24,"ops":6029.5,"usec":165.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":2,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":5818,"utime":10.7,"etime":3.19,"rtime":12.46,"ops":543.7,"usec":1839.1}, {"base":16,"power":2,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":7529,"utime":10.31,"etime":0.33,"rtime":14.33,"ops":730.3,"usec":1369.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":3,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":333,"utime":9.16,"etime":0.87,"rtime":10.1,"ops":36.4,"usec":27507.5}, {"base":16,"power":3,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":421,"utime":9.0,"etime":0.33,"rtime":10.85,"ops":46.8,"usec":21377.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":146285,"utime":10.0,"etime":0.36,"rtime":13.3,"ops":14628.5,"usec":68.4}, {"base":32,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":9.69,"etime":0.36,"rtime":11.61,"ops":13209.5,"usec":75.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":1,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":34133,"utime":9.68,"etime":4.38,"rtime":11.39,"ops":3526.1,"usec":283.6}, {"base":32,"power":1,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":39384,"utime":9.4,"etime":0.27,"rtime":17.62,"ops":4189.8,"usec":238.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":2,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1454,"utime":9.97,"etime":2.79,"rtime":11.19,"ops":145.8,"usec":6856.9}, {"base":32,"power":2,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1777,"utime":8.88,"etime":0.36,"rtime":10.87,"ops":200.1,"usec":4997.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":9.36,"etime":0.38,"rtime":12.73,"ops":14586.9,"usec":68.6}, {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":9.9,"etime":0.36,"rtime":12.08,"ops":12929.3,"usec":77.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":10.0,"etime":16.55,"rtime":18.64,"ops":14628.5,"usec":68.4}, {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.38,"etime":0.36,"rtime":21.6,"ops":13153.5,"usec":76.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":157538,"utime":11.07,"etime":26.68,"rtime":24.48,"ops":14231.1,"usec":70.3}, {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.99,"etime":0.36,"rtime":24.92,"ops":12812.7,"usec":78.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.14,"etime":7.95,"rtime":28.13,"ops":13464.8,"usec":74.3}, {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.92,"etime":0.38,"rtime":30.06,"ops":12144.2,"usec":82.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.46,"etime":15.98,"rtime":12.98,"ops":12027.2,"usec":83.1}, {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":107789,"utime":9.82,"etime":5.93,"rtime":14.32,"ops":10976.5,"usec":91.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"utime":9.72,"etime":4.09,"rtime":52.38,"ops":10534.9,"usec":94.9}, {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.93,"etime":7.79,"rtime":17.88,"ops":9374.6,"usec":106.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":78769,"utime":9.84,"etime":5.54,"rtime":60.71,"ops":8005.0,"usec":124.9}, {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":73142,"utime":10.23,"etime":8.2,"rtime":22.14,"ops":7149.8,"usec":139.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":10.36,"etime":11.54,"rtime":78.88,"ops":5814.2,"usec":172.0}, {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_nest_fixnum","operation":"insert","iterations":51199,"utime":10.22,"etime":9.57,"rtime":34.86,"ops":5009.7,"usec":199.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":36571,"utime":10.18,"etime":7.21,"rtime":21.93,"ops":3592.4,"usec":278.4}, {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":31999,"utime":10.13,"etime":7.4,"rtime":16.68,"ops":3158.8,"usec":316.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":19692,"utime":9.78,"etime":106.23,"rtime":43.84,"ops":2013.5,"usec":496.6}, {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.07,"etime":4.45,"rtime":20.62,"ops":1815.8,"usec":550.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":10666,"utime":9.86,"etime":3.1,"rtime":14.52,"ops":1081.7,"usec":924.4}, {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":10666,"utime":10.55,"etime":3.87,"rtime":13.44,"ops":1011.0,"usec":989.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_nest_fixnum","operation":"insert","iterations":5333,"utime":9.68,"etime":71.52,"rtime":42.08,"ops":550.9,"usec":1815.1}, {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_nest_fixnum","operation":"insert","iterations":5333,"utime":10.09,"etime":1.07,"rtime":13.05,"ops":528.5,"usec":1892.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":2285,"utime":10.0,"etime":1.78,"rtime":13.67,"ops":228.5,"usec":4376.4}, {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":2666,"utime":10.02,"etime":0.82,"rtime":12.27,"ops":266.1,"usec":3758.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_nest_fixnum","operation":"insert","iterations":1000,"utime":9.6,"etime":0.64,"rtime":11.58,"ops":104.2,"usec":9600.0}, {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_nest_fixnum","operation":"insert","iterations":1230,"utime":9.93,"etime":0.25,"rtime":11.44,"ops":123.9,"usec":8073.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":421,"utime":9.54,"etime":0.54,"rtime":35.17,"ops":44.1,"usec":22660.3}, {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":499,"utime":9.59,"etime":0.31,"rtime":10.98,"ops":52.0,"usec":19218.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":181,"utime":7.96,"etime":0.59,"rtime":9.8,"ops":22.7,"usec":43977.9}, {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":249,"utime":9.55,"etime":0.29,"rtime":10.47,"ops":26.1,"usec":38353.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":157538,"utime":10.8,"etime":0.34,"rtime":43.16,"ops":14586.9,"usec":68.6}, {"base":4,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.27,"etime":0.38,"rtime":17.7,"ops":13294.4,"usec":75.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":1,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":10.39,"etime":8.4,"rtime":31.91,"ops":14079.4,"usec":71.0}, {"base":4,"power":1,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.49,"etime":0.79,"rtime":25.97,"ops":12694.4,"usec":78.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":2,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.68,"etime":24.6,"rtime":46.3,"ops":13223.0,"usec":75.6}, {"base":4,"power":2,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.92,"etime":0.64,"rtime":26.5,"ops":12144.2,"usec":82.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":3,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.23,"etime":18.63,"rtime":27.41,"ops":10085.6,"usec":99.2}, {"base":4,"power":3,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.45,"etime":11.76,"rtime":25.7,"ops":9029.9,"usec":110.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":4,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":56888,"utime":10.28,"etime":25.97,"rtime":26.29,"ops":5533.9,"usec":180.7}, {"base":4,"power":4,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":48761,"utime":9.82,"etime":11.6,"rtime":17.53,"ops":4965.5,"usec":201.4,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":5,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":21333,"utime":10.67,"etime":144.94,"rtime":161.78,"ops":1999.3,"usec":500.2}, {"base":4,"power":5,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":17066,"utime":9.55,"etime":6.64,"rtime":23.01,"ops":1787.0,"usec":559.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":6,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":5333,"utime":10.25,"etime":3.53,"rtime":12.63,"ops":520.3,"usec":1922.0}, {"base":4,"power":6,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":5333,"utime":10.1,"etime":2.21,"rtime":12.69,"ops":528.0,"usec":1893.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":7,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":1142,"utime":10.43,"etime":0.74,"rtime":12.8,"ops":109.5,"usec":9133.1}, {"base":4,"power":7,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":1230,"utime":9.83,"etime":0.84,"rtime":11.03,"ops":125.1,"usec":7991.9,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":8,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":142,"utime":10.86,"etime":0.25,"rtime":12.17,"ops":13.1,"usec":76478.9}, {"base":4,"power":8,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":166,"utime":8.33,"etime":0.18,"rtime":9.12,"ops":19.9,"usec":50180.7,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":9.85,"etime":0.42,"rtime":90.49,"ops":14851.3,"usec":67.3}, {"base":8,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.25,"etime":0.37,"rtime":19.26,"ops":13320.3,"usec":75.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":1,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":9.57,"etime":52.26,"rtime":25.46,"ops":14266.8,"usec":70.1}, {"base":8,"power":1,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":10.02,"etime":0.38,"rtime":43.71,"ops":12774.5,"usec":78.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":2,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":10.3,"etime":8.6,"rtime":152.42,"ops":11046.3,"usec":90.5}, {"base":8,"power":2,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":97523,"utime":10.1,"etime":20.96,"rtime":25.18,"ops":9655.7,"usec":103.6,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":3,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":42666,"utime":9.97,"etime":18.08,"rtime":148.86,"ops":4279.4,"usec":233.7}, {"base":8,"power":3,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":36571,"utime":9.48,"etime":13.03,"rtime":25.38,"ops":3857.7,"usec":259.2,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":4,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7111,"utime":9.75,"etime":103.25,"rtime":59.03,"ops":729.3,"usec":1371.1}, {"base":8,"power":4,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":10.79,"etime":11.4,"rtime":13.45,"ops":697.8,"usec":1433.1,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":157538,"utime":10.71,"etime":1.81,"rtime":47.49,"ops":14709.4,"usec":68.0}, {"base":16,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":9.79,"etime":0.36,"rtime":21.73,"ops":13074.6,"usec":76.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":1,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":10.6,"etime":16.1,"rtime":147.91,"ops":13800.5,"usec":72.5}, {"base":16,"power":1,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.47,"etime":1.69,"rtime":52.42,"ops":12225.3,"usec":81.8,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":2,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":8.85,"etime":61.27,"rtime":184.66,"ops":6806.2,"usec":146.9}, {"base":16,"power":2,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":9.67,"etime":26.36,"rtime":16.29,"ops":6229.1,"usec":160.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":3,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7999,"utime":10.33,"etime":9.2,"rtime":13.69,"ops":774.3,"usec":1291.4}, {"base":16,"power":3,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":10.01,"etime":8.18,"rtime":23.99,"ops":752.1,"usec":1329.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":4,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":333,"utime":9.39,"etime":1.44,"rtime":11.26,"ops":35.5,"usec":28198.2}, {"base":16,"power":4,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":333,"utime":8.99,"etime":1.14,"rtime":11.03,"ops":37.0,"usec":26997.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":9.95,"etime":0.45,"rtime":199.41,"ops":14702.0,"usec":68.0}, {"base":32,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.45,"etime":0.37,"rtime":18.3,"ops":13065.4,"usec":76.5,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.55,"etime":26.98,"rtime":45.46,"ops":12941.5,"usec":77.3}, {"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":10.4,"etime":19.68,"rtime":42.36,"ops":11583.7,"usec":86.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":30117,"utime":10.42,"etime":173.43,"rtime":247.61,"ops":2890.3,"usec":346.0}, {"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":9.76,"etime":27.91,"rtime":14.23,"ops":2622.8,"usec":381.3,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":941,"utime":10.9,"etime":5.7,"rtime":18.17,"ops":86.3,"usec":11583.4}]; {"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":1000,"utime":10.15,"etime":3.15,"rtime":11.51,"ops":98.5,"usec":10150.0,"mongo_driver_mode":"c","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":9.83,"etime":0.27,"rtime":10.63,"ops":8680.9,"usec":115.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":9.87,"etime":0.27,"rtime":10.71,"ops":8645.7,"usec":115.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":9.88,"etime":0.26,"rtime":10.76,"ops":8636.9,"usec":115.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.02,"etime":0.27,"rtime":10.89,"ops":8516.3,"usec":117.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.08,"etime":0.26,"rtime":11.0,"ops":8465.6,"usec":118.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.1,"etime":0.27,"rtime":11.11,"ops":8448.8,"usec":118.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.36,"etime":0.27,"rtime":11.59,"ops":8236.8,"usec":121.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.53,"etime":0.28,"rtime":12.15,"ops":8103.8,"usec":123.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":10.2,"etime":0.29,"rtime":12.04,"ops":7722.5,"usec":129.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":68266,"utime":9.36,"etime":1.7,"rtime":10.16,"ops":7293.4,"usec":137.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":64000,"utime":9.68,"etime":1.74,"rtime":10.48,"ops":6611.6,"usec":151.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":53894,"utime":10.39,"etime":3.25,"rtime":11.2,"ops":5187.1,"usec":192.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":39384,"utime":10.1,"etime":1.98,"rtime":11.09,"ops":3899.4,"usec":256.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":25600,"utime":9.98,"etime":3.13,"rtime":10.69,"ops":2565.1,"usec":389.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":16000,"utime":10.54,"etime":1.56,"rtime":11.93,"ops":1518.0,"usec":658.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":9142,"utime":10.69,"etime":1.73,"rtime":12.06,"ops":855.2,"usec":1169.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.8,"etime":0.26,"rtime":10.7,"ops":8707.4,"usec":114.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"key_string_size","operation":"insert","iterations":93090,"utime":10.8,"etime":0.25,"rtime":11.75,"ops":8619.4,"usec":116.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.2,"etime":0.27,"rtime":10.55,"ops":8561.8,"usec":116.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.96,"etime":0.27,"rtime":11.2,"ops":8567.6,"usec":116.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.35,"etime":0.27,"rtime":10.45,"ops":8424.5,"usec":118.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.33,"etime":0.27,"rtime":10.36,"ops":8442.6,"usec":118.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.34,"etime":0.28,"rtime":10.42,"ops":8433.5,"usec":118.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.61,"etime":0.28,"rtime":11.12,"ops":8196.6,"usec":122.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":10.14,"etime":0.29,"rtime":12.6,"ops":7768.1,"usec":128.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"key_string_size","operation":"insert","iterations":73142,"utime":10.16,"etime":2.17,"rtime":10.94,"ops":7199.0,"usec":138.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"key_string_size","operation":"insert","iterations":63999,"utime":10.13,"etime":2.37,"rtime":11.63,"ops":6317.8,"usec":158.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"key_string_size","operation":"insert","iterations":51199,"utime":9.98,"etime":2.65,"rtime":11.92,"ops":5130.2,"usec":194.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"key_string_size","operation":"insert","iterations":39384,"utime":10.2,"etime":2.88,"rtime":12.38,"ops":3861.2,"usec":259.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"key_string_size","operation":"insert","iterations":23272,"utime":9.55,"etime":2.76,"rtime":10.93,"ops":2436.9,"usec":410.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"key_string_size","operation":"insert","iterations":13473,"utime":9.67,"etime":1.95,"rtime":16.18,"ops":1393.3,"usec":717.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"key_string_size","operation":"insert","iterations":7999,"utime":10.01,"etime":1.46,"rtime":11.22,"ops":799.1,"usec":1251.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"array_size_fixnum","operation":"insert","iterations":64000,"utime":9.35,"etime":0.34,"rtime":10.05,"ops":6844.9,"usec":146.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"array_size_fixnum","operation":"insert","iterations":60235,"utime":9.67,"etime":0.36,"rtime":10.32,"ops":6229.1,"usec":160.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"array_size_fixnum","operation":"insert","iterations":53894,"utime":10.37,"etime":0.42,"rtime":10.94,"ops":5197.1,"usec":192.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"array_size_fixnum","operation":"insert","iterations":39384,"utime":10.11,"etime":0.27,"rtime":10.54,"ops":3895.5,"usec":256.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"array_size_fixnum","operation":"insert","iterations":25599,"utime":9.94,"etime":0.4,"rtime":10.23,"ops":2575.4,"usec":388.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"array_size_fixnum","operation":"insert","iterations":15999,"utime":10.21,"etime":0.32,"rtime":10.41,"ops":1567.0,"usec":638.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"array_size_fixnum","operation":"insert","iterations":8533,"utime":9.6,"etime":0.31,"rtime":9.71,"ops":888.9,"usec":1125.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"array_size_fixnum","operation":"insert","iterations":4266,"utime":8.99,"etime":0.3,"rtime":9.06,"ops":474.5,"usec":2107.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"array_size_fixnum","operation":"insert","iterations":2285,"utime":9.46,"etime":0.29,"rtime":9.49,"ops":241.5,"usec":4140.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"array_size_fixnum","operation":"insert","iterations":1230,"utime":10.17,"etime":0.26,"rtime":10.2,"ops":120.9,"usec":8268.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_size_fixnum","operation":"insert","iterations":615,"utime":9.86,"etime":0.25,"rtime":9.87,"ops":62.4,"usec":16032.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_size_fixnum","operation":"insert","iterations":333,"utime":10.81,"etime":0.23,"rtime":10.82,"ops":30.8,"usec":32462.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_size_fixnum","operation":"insert","iterations":153,"utime":9.95,"etime":0.2,"rtime":9.98,"ops":15.4,"usec":65032.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"array_size_fixnum","operation":"insert","iterations":76,"utime":10.1,"etime":0.13,"rtime":10.13,"ops":7.5,"usec":132894.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"array_size_fixnum","operation":"insert","iterations":37,"utime":10.22,"etime":0.27,"rtime":10.27,"ops":3.6,"usec":276216.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_size_fixnum","operation":"insert","iterations":63999,"utime":8.9,"etime":0.33,"rtime":9.55,"ops":7190.9,"usec":139.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_size_fixnum","operation":"insert","iterations":64000,"utime":9.87,"etime":0.34,"rtime":10.49,"ops":6484.3,"usec":154.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_size_fixnum","operation":"insert","iterations":53894,"utime":10.25,"etime":0.4,"rtime":10.82,"ops":5258.0,"usec":190.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"utime":9.26,"etime":0.29,"rtime":9.66,"ops":3949.4,"usec":253.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_size_fixnum","operation":"insert","iterations":25599,"utime":9.77,"etime":0.21,"rtime":10.07,"ops":2620.2,"usec":381.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_size_fixnum","operation":"insert","iterations":17066,"utime":10.68,"etime":0.32,"rtime":10.89,"ops":1597.9,"usec":625.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_size_fixnum","operation":"insert","iterations":9142,"utime":10.11,"etime":0.3,"rtime":10.21,"ops":904.3,"usec":1105.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_size_fixnum","operation":"insert","iterations":4923,"utime":10.1,"etime":0.26,"rtime":10.16,"ops":487.4,"usec":2051.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_size_fixnum","operation":"insert","iterations":2461,"utime":9.75,"etime":0.27,"rtime":9.78,"ops":252.4,"usec":3961.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_size_fixnum","operation":"insert","iterations":1333,"utime":10.34,"etime":0.24,"rtime":10.36,"ops":128.9,"usec":7756.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_size_fixnum","operation":"insert","iterations":666,"utime":10.33,"etime":0.23,"rtime":10.34,"ops":64.5,"usec":15510.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_size_fixnum","operation":"insert","iterations":333,"utime":10.73,"etime":0.22,"rtime":10.74,"ops":31.0,"usec":32222.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_size_fixnum","operation":"insert","iterations":153,"utime":9.97,"etime":0.19,"rtime":10.0,"ops":15.3,"usec":65163.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_size_fixnum","operation":"insert","iterations":71,"utime":9.9,"etime":0.14,"rtime":9.93,"ops":7.2,"usec":139436.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_size_fixnum","operation":"insert","iterations":41,"utime":9.93,"etime":0.24,"rtime":9.98,"ops":4.1,"usec":242195.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_size_fixnum","operation":"insert","iterations":19,"utime":10.02,"etime":0.52,"rtime":10.07,"ops":1.9,"usec":527368.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":16,"size":65536,"exp2":16,"generator":"hash_size_fixnum","operation":"insert","iterations":9,"utime":9.21,"etime":1.02,"rtime":9.28,"ops":1.0,"usec":1023333.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":17,"size":131072,"exp2":17,"generator":"hash_size_fixnum","operation":"insert","iterations":4,"utime":8.06,"etime":2.03,"rtime":8.11,"ops":0.5,"usec":2015000.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.14,"etime":0.24,"rtime":11.15,"ops":9180.5,"usec":108.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":10.3,"etime":0.33,"rtime":11.77,"ops":6627.8,"usec":150.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":39384,"utime":9.32,"etime":0.25,"rtime":9.81,"ops":4225.8,"usec":236.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":24380,"utime":9.97,"etime":0.43,"rtime":10.28,"ops":2445.3,"usec":408.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":12799,"utime":9.51,"etime":0.4,"rtime":9.69,"ops":1345.8,"usec":743.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":6399,"utime":9.24,"etime":0.19,"rtime":9.34,"ops":692.5,"usec":1444.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":3555,"utime":10.17,"etime":0.37,"rtime":10.23,"ops":349.6,"usec":2860.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"array_nest_fixnum","operation":"insert","iterations":1777,"utime":10.29,"etime":0.36,"rtime":10.32,"ops":172.7,"usec":5790.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":842,"utime":9.86,"etime":0.37,"rtime":9.88,"ops":85.4,"usec":11710.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":399,"utime":9.42,"etime":0.17,"rtime":9.43,"ops":42.4,"usec":23609.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":200,"utime":9.76,"etime":0.34,"rtime":9.79,"ops":20.5,"usec":48800.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_nest_fixnum","operation":"insert","iterations":99,"utime":9.83,"etime":0.1,"rtime":9.87,"ops":10.1,"usec":99292.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":47,"utime":9.44,"etime":0.21,"rtime":9.49,"ops":5.0,"usec":200851.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.28,"etime":0.25,"rtime":11.22,"ops":9055.4,"usec":110.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":1,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":53894,"utime":9.82,"etime":0.4,"rtime":12.14,"ops":5488.2,"usec":182.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":2,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":21333,"utime":10.1,"etime":0.25,"rtime":10.33,"ops":2112.2,"usec":473.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":3,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":6399,"utime":10.5,"etime":0.21,"rtime":10.57,"ops":609.4,"usec":1640.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":4,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":1599,"utime":10.18,"etime":0.4,"rtime":10.22,"ops":157.1,"usec":6366.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":5,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":399,"utime":10.25,"etime":0.18,"rtime":10.26,"ops":38.9,"usec":25689.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":6,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":99,"utime":10.37,"etime":0.1,"rtime":10.4,"ops":9.5,"usec":104747.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.3,"etime":0.24,"rtime":11.34,"ops":9037.9,"usec":110.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":1,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":42666,"utime":10.31,"etime":0.26,"rtime":11.98,"ops":4138.3,"usec":241.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":2,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":8000,"utime":10.37,"etime":0.34,"rtime":10.48,"ops":771.5,"usec":1296.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":3,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":1066,"utime":10.53,"etime":0.31,"rtime":10.56,"ops":101.2,"usec":9878.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":4,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":124,"utime":9.95,"etime":0.24,"rtime":9.97,"ops":12.5,"usec":80241.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.32,"etime":0.25,"rtime":11.3,"ops":9020.3,"usec":110.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":1,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":25599,"utime":9.1,"etime":0.19,"rtime":11.3,"ops":2813.1,"usec":355.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":2,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":2285,"utime":9.83,"etime":0.28,"rtime":9.86,"ops":232.5,"usec":4302.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":3,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":153,"utime":10.69,"etime":0.21,"rtime":10.71,"ops":14.3,"usec":69869.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.21,"etime":0.24,"rtime":11.13,"ops":9117.5,"usec":109.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":1,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":17066,"utime":10.0,"etime":0.31,"rtime":11.49,"ops":1706.6,"usec":586.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":2,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":615,"utime":9.79,"etime":0.25,"rtime":9.81,"ops":62.8,"usec":15918.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.33,"etime":0.24,"rtime":11.34,"ops":9011.6,"usec":111.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":68266,"utime":10.18,"etime":0.34,"rtime":13.58,"ops":6705.9,"usec":149.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":42666,"utime":9.74,"etime":0.25,"rtime":11.75,"ops":4380.5,"usec":228.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":9.84,"etime":0.2,"rtime":10.12,"ops":2601.5,"usec":384.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":14222,"utime":10.07,"etime":0.36,"rtime":10.25,"ops":1412.3,"usec":708.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":10.29,"etime":0.36,"rtime":10.38,"ops":731.7,"usec":1366.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":3555,"utime":9.74,"etime":0.35,"rtime":9.8,"ops":365.0,"usec":2739.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_nest_fixnum","operation":"insert","iterations":1777,"utime":9.71,"etime":0.35,"rtime":9.74,"ops":183.0,"usec":5464.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":888,"utime":9.87,"etime":0.34,"rtime":9.9,"ops":90.0,"usec":11114.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":444,"utime":9.96,"etime":0.33,"rtime":9.98,"ops":44.6,"usec":22432.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":222,"utime":10.22,"etime":0.32,"rtime":10.24,"ops":21.7,"usec":46036.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_nest_fixnum","operation":"insert","iterations":99,"utime":9.25,"etime":0.09,"rtime":9.26,"ops":10.7,"usec":93434.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":49,"utime":9.35,"etime":0.2,"rtime":9.37,"ops":5.2,"usec":190816.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_nest_fixnum","operation":"insert","iterations":23,"utime":9.09,"etime":0.43,"rtime":9.13,"ops":2.5,"usec":395217.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":11,"utime":9.28,"etime":0.85,"rtime":9.34,"ops":1.2,"usec":843636.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"utime":8.57,"etime":1.73,"rtime":8.65,"ops":0.6,"usec":1714000.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.47,"etime":0.25,"rtime":10.39,"ops":9010.9,"usec":111.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":1,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":56888,"utime":10.11,"etime":0.4,"rtime":15.26,"ops":5626.9,"usec":177.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":2,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":21333,"utime":9.62,"etime":0.24,"rtime":11.72,"ops":2217.6,"usec":450.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":3,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":6399,"utime":9.82,"etime":0.4,"rtime":9.91,"ops":651.6,"usec":1534.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":4,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":1684,"utime":10.12,"etime":0.38,"rtime":10.16,"ops":166.4,"usec":6009.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":5,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":380,"utime":9.3,"etime":0.38,"rtime":9.32,"ops":40.9,"usec":24473.7,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":6,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":99,"utime":9.94,"etime":0.1,"rtime":9.97,"ops":10.0,"usec":100404.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":7,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":23,"utime":9.85,"etime":0.43,"rtime":9.9,"ops":2.3,"usec":428260.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":4,"power":8,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":4,"utime":8.76,"etime":2.24,"rtime":8.81,"ops":0.5,"usec":2190000.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":78769,"utime":8.7,"etime":0.28,"rtime":9.55,"ops":9053.9,"usec":110.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":1,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":39384,"utime":9.11,"etime":0.26,"rtime":11.32,"ops":4323.2,"usec":231.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":2,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":8533,"utime":10.35,"etime":0.32,"rtime":10.84,"ops":824.4,"usec":1212.9,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":3,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":1066,"utime":10.01,"etime":0.29,"rtime":10.09,"ops":106.5,"usec":9390.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":8,"power":4,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":133,"utime":10.16,"etime":0.23,"rtime":10.2,"ops":13.1,"usec":76391.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.29,"etime":0.24,"rtime":11.33,"ops":9046.6,"usec":110.5,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":1,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":30117,"utime":10.37,"etime":0.37,"rtime":14.4,"ops":2904.2,"usec":344.3,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":2,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":2461,"utime":10.04,"etime":0.26,"rtime":10.08,"ops":245.1,"usec":4079.6,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":3,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":153,"utime":10.12,"etime":0.2,"rtime":10.14,"ops":15.1,"usec":66143.8,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":16,"power":4,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":8,"utime":9.9,"etime":1.25,"rtime":9.93,"ops":0.8,"usec":1237500.0,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.25,"etime":0.26,"rtime":10.18,"ops":9225.2,"usec":108.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.1,"etime":0.3,"rtime":12.99,"ops":1810.4,"usec":552.4,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":666,"utime":10.06,"etime":0.23,"rtime":10.1,"ops":66.2,"usec":15105.1,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
{"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":19,"utime":9.79,"etime":0.52,"rtime":9.86,"ops":1.9,"usec":515263.2,"mongo_driver_mode":"ruby","hostname":"osprey","osname":"Darwin"},
];

View File

@ -1,7 +1,24 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
$LOAD_PATH[0, 0] = File.join(File.dirname(__FILE__), '..', 'lib') $LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
#
# review load path def set_mongo_driver_mode(mode)
case mode
when :c
ENV.delete('TEST_MODE')
ENV['C_EXT'] = 'TRUE'
when :ruby
ENV['TEST_MODE'] = 'TRUE'
ENV.delete('C_EXT')
else
raise 'mode must be :c or :ruby'
end
ENV['MONGO_DRIVER_MODE'] = mode.to_s
end
$mode = ARGV[0].to_sym if ARGV[0]
set_mongo_driver_mode($mode || :c)
ENV['HOSTNAME'] = `uname -n`[/([^.]*)/,1]
ENV['OSNAME'] = `uname -s`.strip
# Exploratory/Experimental/Exponential tests for performance tuning # Exploratory/Experimental/Exponential tests for performance tuning
@ -13,8 +30,31 @@ require 'benchmark'
$calibration_runtime = 0.1 $calibration_runtime = 0.1
$target_runtime = 5.0 $target_runtime = 5.0
$db_name = "benchmark" $db_name = 'benchmark'
$collection_name = "exp_series" $collection_name = 'exp_series'
class Hash
def store_embedded(key, value)
case key
when /([^.]*)\.(.*)/
store($1, Hash.new) unless fetch($1, nil)
self[$1].store_embedded($2, value)
else
store(key, value)
end
end
end
def sys_info
h = Hash.new
if FileTest.executable?('/usr/sbin/sysctl')
text = `/usr/sbin/sysctl -a kern.ostype kern.version kern.hostname hw.machine hw.model hw.cputype hw.busfrequency hw.cpufrequency`
values = text.split(/\n/).collect{|line| /([^:]*) *[:=] *(.*)/.match(line)[1..2]}
h = Hash.new
values.each{|key, value| h.store_embedded(key, value) }
end
return h
end
class TestExpPerformance < Test::Unit::TestCase class TestExpPerformance < Test::Unit::TestCase
@ -67,22 +107,24 @@ class TestExpPerformance < Test::Unit::TestCase
size, doc = generator.call(base, power) size, doc = generator.call(base, power)
iterations, utime, rtime, etime = valuate(db, coll, setup, teardown) { operation.call(coll, doc) } iterations, utime, rtime, etime = valuate(db, coll, setup, teardown) { operation.call(coll, doc) }
result = { result = {
"base" => base, 'base' => base,
"power" => power, 'power' => power,
"size" => size, 'size' => size,
"exp2" => Math.log2(size).to_i, 'exp2' => Math.log2(size).to_i,
"generator" => generator.name.to_s, 'generator' => generator.name.to_s,
"operation" => operation.name.to_s, 'operation' => operation.name.to_s,
"iterations" => iterations, 'iterations' => iterations,
"utime" => utime.round(2), 'utime' => utime.round(2),
"etime" => etime.round(2), 'etime' => etime.round(2),
"rtime" => rtime.round(2), 'rtime' => rtime.round(2),
"ops" => (iterations.to_f / utime.to_f).round(1), 'ops' => (iterations.to_f / utime.to_f).round(1),
"usec" => (1000000.0 * utime.to_f / iterations.to_f).round(1), 'usec' => (1000000.0 * utime.to_f / iterations.to_f).round(1),
# "git" => git, # thinking 'mongo_driver_mode' => ENV['MONGO_DRIVER_MODE'],
# "datetime" +> Time.now, # thinking 'hostname' => ENV['HOSTNAME'],
# "hostname" => hostname, # thinking 'osname' => ENV['OSNAME'],
# "nbench-int" => nbench.int, # thinking # 'git' => git, # thinking
# 'datetime' +> Time.now, # thinking
# 'nbench-int' => nbench.int, # thinking
} }
STDERR.puts result.inspect STDERR.puts result.inspect
STDERR.flush STDERR.flush
@ -92,19 +134,19 @@ class TestExpPerformance < Test::Unit::TestCase
def value_string_size(base, power) def value_string_size(base, power)
n = base ** power n = base ** power
return [n, {n.to_s => ("*" * n)}] return [n, {n.to_s => ('*' * n)}]
end end
def key_string_size(base, power) def key_string_size(base, power)
n = base ** power n = base ** power
return [n, {("*" * n) => n}] return [n, {('*' * n) => n}]
end end
def hash_size_fixnum(base, power) def hash_size_fixnum(base, power)
n = base ** power n = base ** power
h = Hash.new h = Hash.new
(0...n).each { |i| h[i.to_s] = i } (0...n).each { |i| h[i.to_s] = i }
return [n, h] return [n, {n.to_s => h}] # embedded like array_size_fixnum
end end
def array_size_fixnum(base, power) def array_size_fixnum(base, power)
@ -166,10 +208,14 @@ class TestExpPerformance < Test::Unit::TestCase
end end
# Performance Tuning Engineering # Performance Tuning Engineering
## Completed
### How to measure and compare pure Ruby versus C extension performance
## Current Work Items
### Profiling of C extension
## Overall Strategy ## Overall Strategy
### Prioritize/Review Ruby 1.9.3, Ruby 1.8.7, JRuby 1.6.7 ### Prioritize/Review Ruby 1.9.3, JRuby 1.6.7, Ruby 1.8.7
### Run spectrum of exploratory performance tests ### Run spectrum of exploratory performance tests
### Graph results, probably with gnuplot, with HTML wrapper ### Graph results with flot in HTML wrapper - http://code.google.com/p/flot/
### Select test for profiling ### Select test for profiling
### Find where time is being spent ### Find where time is being spent
### Construct specific performance test ### Construct specific performance test
@ -185,9 +231,14 @@ class TestExpPerformance < Test::Unit::TestCase
### Knowledge of Ruby driver and techniques ### Knowledge of Ruby driver and techniques
### Perhaps architecture and design improvements ### Perhaps architecture and design improvements
### Lessons transferable to other drivers ### Lessons transferable to other drivers
## HW Info
### Linux - /proc/cpuinfo
### Mac OS X - sysctl -a hw
def test_zzz_exp_blanket def test_zzz_exp_blanket
puts puts
puts sys_info
conn = Mongo::Connection.new conn = Mongo::Connection.new
conn.drop_database($db_name) conn.drop_database($db_name)
db = conn.db($db_name) db = conn.db($db_name)
@ -222,13 +273,13 @@ class TestExpPerformance < Test::Unit::TestCase
] ]
results = [] results = []
tests.each do |base, max_power, generator, setup, operation, teardown| tests.each do |base, max_power, generator, setup, operation, teardown|
# consider moving "method" as permitted by scope # consider moving 'method' as permitted by scope
results += power_test(base, max_power, db, coll, method(generator), method(setup), method(operation), method(teardown)) results += power_test(base, max_power, db, coll, method(generator), method(setup), method(operation), method(teardown))
end end
# consider inserting the results into a database collection # consider inserting the results into a database collection
# Test::Unit::TestCase pollutes STDOUT, so write to a file # Test::Unit::TestCase pollutes STDOUT, so write to a file
File.open("exp_series.js", "w"){|f| File.open("exp_series-#{Time.now.strftime('%Y%m%d-%H%M')}.js", 'w'){|f|
f.puts("expSeries = #{results.to_json.gsub(/(\[|},)/, "\\1\n")};") f.puts("#{results.to_json.gsub(/\[/, "").gsub(/(}[\],])/, "},\n")}")
} }
conn.drop_database($db_name) conn.drop_database($db_name)

View File

@ -1,10 +1,28 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__)) $LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
def set_mongo_driver_mode(mode)
case mode
when :c
ENV.delete('TEST_MODE')
ENV['C_EXT'] = 'TRUE'
when :ruby
ENV['TEST_MODE'] = 'TRUE'
ENV.delete('C_EXT')
else
raise 'mode must be :c or :ruby'
end
ENV['MONGO_DRIVER_MODE'] = mode.to_s
end
$mode = ARGV[0].to_sym if ARGV[0]
set_mongo_driver_mode($mode || :c)
require 'rubygems' require 'rubygems'
require 'mongo' require 'mongo'
require 'benchmark' require 'benchmark'
require 'ruby-prof' require 'ruby-prof'
require 'perftools'
def array_size_fixnum(base, power) def array_size_fixnum(base, power)
n = base ** power n = base ** power
@ -21,7 +39,7 @@ def insert(coll, h)
coll.insert(h) # note that insert stores :_id in h and subsequent inserts are updates coll.insert(h) # note that insert stores :_id in h and subsequent inserts are updates
end end
def profile(iterations) def ruby_prof(iterations)
RubyProf.start RubyProf.start
puts Benchmark.measure { puts Benchmark.measure {
iterations.times { yield } iterations.times { yield }
@ -37,6 +55,15 @@ def profile(iterations)
printer.print(STDOUT, {}) printer.print(STDOUT, {})
end end
def perftools(iterations)
profile_file_name = "/tmp/profile_array.perftools"
PerfTools::CpuProfiler.start(profile_file_name) do
iterations.times { yield }
end
cmd = "pprof.rb --ignore=IO --text \"#{profile_file_name}\""
system(cmd)
end
conn = Mongo::Connection.new conn = Mongo::Connection.new
db = conn['benchmark'] db = conn['benchmark']
@ -46,7 +73,8 @@ coll.remove
puts "coll.count: #{coll.count}" puts "coll.count: #{coll.count}"
n, doc = array_size_fixnum(2, 6) n, doc = array_size_fixnum(2, 6)
profile(1000) { insert(coll, doc) } ruby_prof(1000) { insert(coll, doc) }
#perftools(10000) { insert(coll, doc) }
puts "coll.count: #{coll.count}" puts "coll.count: #{coll.count}"
coll.remove coll.remove