diff --git a/bench/exp_series.html b/bench/exp_series.html index 9917e8e..00db393 100644 --- a/bench/exp_series.html +++ b/bench/exp_series.html @@ -13,7 +13,6 @@ font-family: sans-serif; font-size: 16px; margin: 50px; - max-width: 1000px; } div.graph { width:800px; @@ -134,18 +133,36 @@ $(function () { { base:2, generator:'hash_size_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' } ] ], + [ 'array_size_fixnum slow versus fast insert C', 12, 'tag', + [ + { base:2, generator:'array_size_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' }, + { base:2, generator:'array_size_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' } + ] + ], [ 'array_size_fixnum fast versus hash_size_fixnum insert C', 12, 'generator', [ { base:2, generator:'array_size_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' }, { base:2, generator:'hash_size_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' } ] ], - [ 'array_size_fixnum slow versus fast insert C', 12, 'tag', + [ 'array_nest_fixnum slow versus hash_nest_fixnum insert C base 2', 12, 'generator', [ - { base:2, generator:'array_size_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' }, - { base:2, generator:'array_size_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' } + { base:2, generator:'array_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' }, + { base:2, generator:'hash_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' } ] - ] + ], + [ 'array_nest_fixnum slow versus fast insert C base 2', 12, 'tag', + [ + { base:2, generator:'array_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_slow' }, + { base:2, generator:'array_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' } + ] + ], + [ 'array_nest_fixnum fast versus hash_nest_fixnum insert C base 2', 12, 'generator', + [ + { base:2, generator:'array_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' }, + { base:2, generator:'hash_nest_fixnum', operation:'insert', mode: 'c', tag: 'array_fast' } + ] + ], ]; $.each(graph, function(i, e){ var title, xMax, labelSpec, plotSpecs; diff --git a/bench/exp_series.js b/bench/exp_series.js index 3689253..2eee7f6 100644 --- a/bench/exp_series.js +++ b/bench/exp_series.js @@ -271,140 +271,156 @@ expSeries = [ {"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.04,"etime":0.29,"rtime":13.07,"ops":1821.2,"usec":549.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120425-1501","tag":"orig_ruby"}, {"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":666,"utime":9.99,"etime":0.22,"rtime":10.02,"ops":66.7,"usec":15000.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120425-1501","tag":"orig_ruby"}, {"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":19,"utime":9.72,"etime":0.51,"rtime":9.77,"ops":2.0,"usec":511578.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120425-1501","tag":"orig_ruby"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.38,"etime":0.35,"rtime":12.16,"ops":13153.5,"usec":76.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.71,"etime":0.36,"rtime":12.1,"ops":13182.2,"usec":75.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.42,"etime":0.35,"rtime":13.36,"ops":13103.0,"usec":76.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.8,"etime":0.36,"rtime":12.46,"ops":13061.1,"usec":76.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.82,"etime":0.36,"rtime":12.49,"ops":13034.5,"usec":76.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.88,"etime":0.37,"rtime":12.53,"ops":12955.4,"usec":77.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.85,"etime":0.36,"rtime":12.93,"ops":12994.9,"usec":77.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.76,"etime":0.37,"rtime":13.15,"ops":13114.8,"usec":76.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.97,"etime":2.74,"rtime":11.48,"ops":12838.4,"usec":77.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":10.06,"etime":3.18,"rtime":11.61,"ops":11975.1,"usec":83.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":113777,"utime":9.9,"etime":4.78,"rtime":11.25,"ops":11492.6,"usec":87.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":102399,"utime":9.71,"etime":3.5,"rtime":12.15,"ops":10545.7,"usec":94.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":102399,"utime":10.89,"etime":4.29,"rtime":15.05,"ops":9403.0,"usec":106.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":73142,"utime":10.17,"etime":7.67,"rtime":20.37,"ops":7191.9,"usec":139.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":48761,"utime":9.74,"etime":6.09,"rtime":16.14,"ops":5006.3,"usec":199.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":32000,"utime":10.25,"etime":6.97,"rtime":17.56,"ops":3122.0,"usec":320.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":9.82,"etime":0.36,"rtime":29.32,"ops":13034.5,"usec":76.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.82,"etime":0.37,"rtime":12.5,"ops":13034.6,"usec":76.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":9.89,"etime":0.36,"rtime":12.41,"ops":12942.3,"usec":77.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":10.05,"etime":0.37,"rtime":12.68,"ops":12736.2,"usec":78.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.9,"etime":0.36,"rtime":12.88,"ops":12929.3,"usec":77.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.01,"etime":0.37,"rtime":13.52,"ops":12787.2,"usec":78.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":9.16,"etime":0.41,"rtime":12.07,"ops":12421.1,"usec":80.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"key_string_size","operation":"insert","iterations":107789,"utime":8.53,"etime":0.41,"rtime":12.18,"ops":12636.5,"usec":79.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":10.45,"etime":3.2,"rtime":12.01,"ops":12248.8,"usec":81.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":9.65,"etime":3.62,"rtime":10.93,"ops":11790.4,"usec":84.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":9.85,"etime":3.93,"rtime":12.07,"ops":11551.0,"usec":86.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"key_string_size","operation":"insert","iterations":107789,"utime":10.58,"etime":5.56,"rtime":16.24,"ops":10188.0,"usec":98.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.94,"etime":6.92,"rtime":16.22,"ops":8584.8,"usec":116.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":13,"size":8192,"exp2":13,"generator":"key_string_size","operation":"insert","iterations":68266,"utime":10.27,"etime":7.87,"rtime":21.34,"ops":6647.1,"usec":150.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":14,"size":16384,"exp2":14,"generator":"key_string_size","operation":"insert","iterations":42666,"utime":9.67,"etime":23.82,"rtime":17.16,"ops":4412.2,"usec":226.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":15,"size":32768,"exp2":15,"generator":"key_string_size","operation":"insert","iterations":25599,"utime":9.95,"etime":7.07,"rtime":18.05,"ops":2572.8,"usec":388.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_size_fixnum","operation":"insert","iterations":128000,"utime":10.27,"etime":0.37,"rtime":14.16,"ops":12463.5,"usec":80.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_size_fixnum","operation":"insert","iterations":113777,"utime":9.29,"etime":0.4,"rtime":13.03,"ops":12247.3,"usec":81.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_size_fixnum","operation":"insert","iterations":102399,"utime":8.2,"etime":0.22,"rtime":12.28,"ops":12487.7,"usec":80.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":10.31,"etime":0.39,"rtime":13.53,"ops":11684.8,"usec":85.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_size_fixnum","operation":"insert","iterations":102399,"utime":9.26,"etime":0.24,"rtime":12.91,"ops":11058.2,"usec":90.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_size_fixnum","operation":"insert","iterations":93090,"utime":9.28,"etime":0.24,"rtime":12.9,"ops":10031.2,"usec":99.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_size_fixnum","operation":"insert","iterations":85333,"utime":9.94,"etime":2.36,"rtime":10.82,"ops":8584.8,"usec":116.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_size_fixnum","operation":"insert","iterations":68266,"utime":10.48,"etime":2.83,"rtime":11.35,"ops":6513.9,"usec":153.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_size_fixnum","operation":"insert","iterations":46545,"utime":10.79,"etime":3.11,"rtime":19.98,"ops":4313.7,"usec":231.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_size_fixnum","operation":"insert","iterations":28444,"utime":10.41,"etime":3.83,"rtime":14.88,"ops":2732.4,"usec":366.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_size_fixnum","operation":"insert","iterations":15058,"utime":9.51,"etime":3.95,"rtime":11.77,"ops":1583.4,"usec":631.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_size_fixnum","operation":"insert","iterations":9142,"utime":10.39,"etime":2.14,"rtime":12.12,"ops":879.9,"usec":1136.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_size_fixnum","operation":"insert","iterations":4571,"utime":9.97,"etime":1.1,"rtime":11.1,"ops":458.5,"usec":2181.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":13,"size":8192,"exp2":13,"generator":"array_size_fixnum","operation":"insert","iterations":2461,"utime":10.51,"etime":0.57,"rtime":11.64,"ops":234.2,"usec":4270.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":14,"size":16384,"exp2":14,"generator":"array_size_fixnum","operation":"insert","iterations":1230,"utime":10.42,"etime":0.26,"rtime":11.5,"ops":118.0,"usec":8471.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.58,"etime":0.38,"rtime":10.76,"ops":12575.2,"usec":79.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_size_fixnum","operation":"insert","iterations":127999,"utime":10.17,"etime":0.37,"rtime":14.11,"ops":12585.9,"usec":79.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.72,"etime":0.4,"rtime":14.46,"ops":12394.0,"usec":80.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_size_fixnum","operation":"insert","iterations":127999,"utime":10.98,"etime":0.37,"rtime":17.07,"ops":11657.5,"usec":85.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_size_fixnum","operation":"insert","iterations":107789,"utime":9.61,"etime":0.57,"rtime":15.26,"ops":11216.3,"usec":89.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_size_fixnum","operation":"insert","iterations":102399,"utime":9.88,"etime":0.23,"rtime":18.44,"ops":10364.3,"usec":96.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_size_fixnum","operation":"insert","iterations":93090,"utime":9.9,"etime":4.81,"rtime":14.43,"ops":9403.0,"usec":106.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_size_fixnum","operation":"insert","iterations":78769,"utime":10.02,"etime":5.72,"rtime":20.09,"ops":7861.2,"usec":127.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_size_fixnum","operation":"insert","iterations":56888,"utime":10.15,"etime":15.72,"rtime":24.36,"ops":5604.7,"usec":178.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"utime":9.84,"etime":8.27,"rtime":23.33,"ops":3716.6,"usec":269.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_size_fixnum","operation":"insert","iterations":21333,"utime":9.46,"etime":5.14,"rtime":14.25,"ops":2255.1,"usec":443.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_size_fixnum","operation":"insert","iterations":12799,"utime":10.49,"etime":3.3,"rtime":12.7,"ops":1220.1,"usec":819.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_size_fixnum","operation":"insert","iterations":6095,"utime":10.02,"etime":1.84,"rtime":11.62,"ops":608.3,"usec":1644.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_size_fixnum","operation":"insert","iterations":2666,"utime":9.57,"etime":0.72,"rtime":11.65,"ops":278.6,"usec":3589.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_size_fixnum","operation":"insert","iterations":1684,"utime":9.96,"etime":0.45,"rtime":13.29,"ops":169.1,"usec":5914.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"utime":10.16,"etime":0.45,"rtime":13.11,"ops":71.6,"usec":13975.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":16,"size":65536,"exp2":16,"generator":"hash_size_fixnum","operation":"insert","iterations":363,"utime":10.23,"etime":0.21,"rtime":17.79,"ops":35.5,"usec":28181.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":17,"size":131072,"exp2":17,"generator":"hash_size_fixnum","operation":"insert","iterations":166,"utime":9.95,"etime":0.19,"rtime":13.26,"ops":16.7,"usec":59939.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":6.97,"etime":0.2,"rtime":10.87,"ops":13355.8,"usec":74.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":9.91,"etime":0.35,"rtime":18.01,"ops":12916.2,"usec":77.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":120470,"utime":9.47,"etime":0.37,"rtime":18.16,"ops":12721.2,"usec":78.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":120470,"utime":9.77,"etime":0.43,"rtime":18.17,"ops":12330.6,"usec":81.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":107789,"utime":9.62,"etime":6.1,"rtime":11.93,"ops":11204.7,"usec":89.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":9.72,"etime":11.25,"rtime":18.36,"ops":9577.2,"usec":104.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":73142,"utime":10.06,"etime":11.0,"rtime":22.55,"ops":7270.6,"usec":137.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_nest_fixnum","operation":"insert","iterations":51199,"utime":10.18,"etime":18.38,"rtime":20.97,"ops":5029.4,"usec":198.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":31999,"utime":10.13,"etime":6.7,"rtime":14.61,"ops":3158.8,"usec":316.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":18285,"utime":10.14,"etime":16.19,"rtime":11.76,"ops":1803.3,"usec":554.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":10666,"utime":10.48,"etime":2.44,"rtime":12.09,"ops":1017.7,"usec":982.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_nest_fixnum","operation":"insert","iterations":5818,"utime":11.01,"etime":1.38,"rtime":12.57,"ops":528.4,"usec":1892.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":2666,"utime":10.19,"etime":0.64,"rtime":16.49,"ops":261.6,"usec":3822.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.28,"etime":0.35,"rtime":27.41,"ops":13281.4,"usec":75.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":1,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.4,"etime":0.36,"rtime":36.87,"ops":13128.2,"usec":76.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":2,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":89043,"utime":7.73,"etime":0.75,"rtime":24.88,"ops":11519.1,"usec":86.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":3,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":9.74,"etime":9.07,"rtime":27.04,"ops":8761.1,"usec":114.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":4,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":42666,"utime":9.47,"etime":11.02,"rtime":18.1,"ops":4505.4,"usec":222.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":5,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":15999,"utime":10.01,"etime":5.42,"rtime":21.42,"ops":1598.3,"usec":625.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":6,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":4571,"utime":10.13,"etime":1.54,"rtime":12.01,"ops":451.2,"usec":2216.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.29,"etime":0.35,"rtime":23.46,"ops":13268.5,"usec":75.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":1,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.81,"etime":1.68,"rtime":44.66,"ops":12630.2,"usec":79.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":2,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.16,"etime":12.42,"rtime":26.52,"ops":9162.4,"usec":109.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":3,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":28444,"utime":8.93,"etime":11.72,"rtime":11.86,"ops":3185.2,"usec":314.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":4,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":5333,"utime":9.7,"etime":3.07,"rtime":11.07,"ops":549.8,"usec":1818.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":9.81,"etime":0.34,"rtime":33.86,"ops":13047.9,"usec":76.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":1,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":102399,"utime":8.62,"etime":0.21,"rtime":27.24,"ops":11879.2,"usec":84.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":2,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":51199,"utime":9.34,"etime":15.91,"rtime":28.8,"ops":5481.7,"usec":182.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":3,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":5818,"utime":9.59,"etime":6.07,"rtime":11.07,"ops":606.7,"usec":1648.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.73,"etime":0.35,"rtime":32.15,"ops":12724.4,"usec":78.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":1,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":113777,"utime":10.21,"etime":1.9,"rtime":39.58,"ops":11143.7,"usec":89.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":2,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":21333,"utime":10.25,"etime":21.54,"rtime":13.14,"ops":2081.3,"usec":480.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.01,"etime":0.37,"rtime":34.0,"ops":13370.7,"usec":74.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.83,"etime":0.36,"rtime":38.39,"ops":13021.3,"usec":76.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.54,"etime":2.18,"rtime":48.48,"ops":12953.8,"usec":77.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.82,"etime":0.61,"rtime":47.87,"ops":12267.8,"usec":81.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":11.2,"etime":17.17,"rtime":40.12,"ops":10756.2,"usec":93.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.05,"etime":15.29,"rtime":29.35,"ops":9262.7,"usec":108.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":73142,"utime":10.86,"etime":11.78,"rtime":16.5,"ops":6735.0,"usec":148.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_nest_fixnum","operation":"insert","iterations":46545,"utime":9.66,"etime":12.18,"rtime":27.53,"ops":4818.3,"usec":207.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":28444,"utime":9.16,"etime":5.88,"rtime":12.51,"ops":3105.2,"usec":322.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.34,"etime":4.46,"rtime":23.6,"ops":1768.4,"usec":565.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":10666,"utime":10.61,"etime":3.05,"rtime":13.28,"ops":1005.3,"usec":994.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_nest_fixnum","operation":"insert","iterations":4923,"utime":9.53,"etime":1.38,"rtime":11.09,"ops":516.6,"usec":1935.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":2461,"utime":9.52,"etime":0.6,"rtime":10.6,"ops":258.5,"usec":3868.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_nest_fixnum","operation":"insert","iterations":1230,"utime":10.45,"etime":0.28,"rtime":15.53,"ops":117.7,"usec":8495.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":499,"utime":9.81,"etime":0.31,"rtime":10.47,"ops":50.9,"usec":19659.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":142,"utime":9.87,"etime":0.23,"rtime":10.0,"ops":14.4,"usec":69507.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.28,"etime":0.4,"rtime":42.54,"ops":12981.7,"usec":77.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":1,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.34,"etime":0.76,"rtime":31.66,"ops":12379.0,"usec":80.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":2,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":10.63,"etime":0.82,"rtime":60.44,"ops":11333.0,"usec":88.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":3,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.3,"etime":27.28,"rtime":17.35,"ops":9037.9,"usec":110.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":4,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":48761,"utime":10.07,"etime":11.99,"rtime":16.0,"ops":4842.2,"usec":206.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":5,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":17066,"utime":9.69,"etime":7.57,"rtime":20.68,"ops":1761.2,"usec":567.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":6,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":4571,"utime":9.02,"etime":2.28,"rtime":9.75,"ops":506.8,"usec":1973.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":7,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":1142,"utime":9.59,"etime":0.51,"rtime":10.84,"ops":119.1,"usec":8397.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":4,"power":8,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":266,"utime":10.82,"etime":0.28,"rtime":11.41,"ops":24.6,"usec":40676.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.67,"etime":0.38,"rtime":18.02,"ops":13236.7,"usec":75.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":1,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.61,"etime":0.98,"rtime":46.52,"ops":12535.9,"usec":79.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":2,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.26,"etime":24.41,"rtime":15.92,"ops":10052.9,"usec":99.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":3,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":39384,"utime":10.12,"etime":15.2,"rtime":28.73,"ops":3891.7,"usec":257.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":8,"power":4,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7111,"utime":10.13,"etime":5.13,"rtime":11.35,"ops":702.0,"usec":1424.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":97523,"utime":7.54,"etime":0.43,"rtime":18.76,"ops":12934.1,"usec":77.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":1,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.62,"etime":2.32,"rtime":48.35,"ops":12052.6,"usec":83.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":2,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":9.62,"etime":31.15,"rtime":17.03,"ops":6261.4,"usec":159.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":3,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":8000,"utime":10.59,"etime":7.73,"rtime":28.12,"ops":755.4,"usec":1323.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":16,"power":4,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":399,"utime":10.1,"etime":0.98,"rtime":10.97,"ops":39.5,"usec":25313.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":9.45,"etime":0.37,"rtime":18.33,"ops":13545.0,"usec":73.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.58,"etime":30.4,"rtime":20.14,"ops":11876.5,"usec":84.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":23272,"utime":8.86,"etime":15.6,"rtime":37.55,"ops":2626.6,"usec":380.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, - {"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":1066,"utime":10.71,"etime":3.81,"rtime":12.28,"ops":99.5,"usec":10046.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120425-1401","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.32,"etime":0.95,"rtime":11.81,"ops":13229.9,"usec":75.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.71,"etime":0.97,"rtime":10.94,"ops":13182.2,"usec":75.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.41,"etime":0.98,"rtime":11.96,"ops":13115.6,"usec":76.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.69,"etime":1.07,"rtime":10.91,"ops":13209.4,"usec":75.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.78,"etime":1.0,"rtime":11.18,"ops":13087.8,"usec":76.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.72,"etime":1.0,"rtime":11.03,"ops":13168.6,"usec":75.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.79,"etime":1.02,"rtime":11.15,"ops":13074.5,"usec":76.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.89,"etime":1.08,"rtime":11.47,"ops":12942.3,"usec":77.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":10.16,"etime":1.03,"rtime":11.75,"ops":12598.3,"usec":79.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":10.02,"etime":1.15,"rtime":11.81,"ops":12023.0,"usec":83.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":113777,"utime":9.66,"etime":1.16,"rtime":12.2,"ops":11778.2,"usec":84.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":102400,"utime":9.66,"etime":1.33,"rtime":12.21,"ops":10600.4,"usec":94.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":102399,"utime":10.82,"etime":0.8,"rtime":15.29,"ops":9463.9,"usec":105.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":73142,"utime":10.0,"etime":1.06,"rtime":15.47,"ops":7314.2,"usec":136.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":51199,"utime":10.14,"etime":0.77,"rtime":17.42,"ops":5049.2,"usec":198.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":32000,"utime":10.31,"etime":0.88,"rtime":18.95,"ops":3103.8,"usec":322.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1300","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.64,"etime":1.06,"rtime":10.95,"ops":13278.0,"usec":75.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.68,"etime":1.06,"rtime":11.06,"ops":13223.0,"usec":75.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.46,"etime":0.98,"rtime":12.01,"ops":13052.9,"usec":76.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.5,"etime":1.11,"rtime":11.96,"ops":13003.1,"usec":76.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.22,"etime":1.14,"rtime":11.55,"ops":13359.4,"usec":74.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.91,"etime":1.1,"rtime":11.38,"ops":12916.2,"usec":77.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.98,"etime":1.06,"rtime":11.44,"ops":12825.7,"usec":78.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.91,"etime":1.09,"rtime":11.51,"ops":12916.1,"usec":77.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":10.2,"etime":1.16,"rtime":11.86,"ops":12549.0,"usec":79.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":9.92,"etime":1.1,"rtime":11.87,"ops":12144.2,"usec":82.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":10.43,"etime":1.24,"rtime":12.65,"ops":11550.3,"usec":86.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"value_string_size","operation":"insert","iterations":102400,"utime":9.75,"etime":1.31,"rtime":12.29,"ops":10502.6,"usec":95.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"value_string_size","operation":"insert","iterations":93090,"utime":9.97,"etime":0.82,"rtime":14.12,"ops":9337.0,"usec":107.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"value_string_size","operation":"insert","iterations":73142,"utime":10.16,"etime":0.88,"rtime":14.89,"ops":7199.0,"usec":138.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"value_string_size","operation":"insert","iterations":51200,"utime":10.3,"etime":1.15,"rtime":24.0,"ops":4970.9,"usec":201.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":15,"size":32768,"exp2":15,"generator":"value_string_size","operation":"insert","iterations":32000,"utime":10.29,"etime":0.95,"rtime":19.6,"ops":3109.8,"usec":321.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.85,"etime":1.15,"rtime":11.24,"ops":12994.9,"usec":77.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.85,"etime":1.3,"rtime":11.15,"ops":12994.9,"usec":77.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.45,"etime":1.06,"rtime":11.79,"ops":13065.4,"usec":76.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.79,"etime":1.24,"rtime":11.29,"ops":13074.6,"usec":76.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.88,"etime":1.13,"rtime":11.13,"ops":12955.5,"usec":77.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.54,"etime":1.59,"rtime":11.92,"ops":12953.8,"usec":77.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.62,"etime":1.23,"rtime":11.03,"ops":13305.6,"usec":75.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.89,"etime":1.0,"rtime":11.46,"ops":12942.4,"usec":77.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":10.08,"etime":1.26,"rtime":11.96,"ops":12698.3,"usec":78.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":10.01,"etime":1.46,"rtime":11.88,"ops":12035.0,"usec":83.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"key_string_size","operation":"insert","iterations":113777,"utime":9.93,"etime":1.28,"rtime":12.09,"ops":11457.9,"usec":87.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"key_string_size","operation":"insert","iterations":97523,"utime":9.63,"etime":1.32,"rtime":12.2,"ops":10127.0,"usec":98.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"key_string_size","operation":"insert","iterations":93090,"utime":10.69,"etime":0.83,"rtime":16.64,"ops":8708.1,"usec":114.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"key_string_size","operation":"insert","iterations":68266,"utime":10.55,"etime":1.1,"rtime":14.91,"ops":6470.7,"usec":154.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"key_string_size","operation":"insert","iterations":42666,"utime":9.96,"etime":0.79,"rtime":14.71,"ops":4283.7,"usec":233.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":15,"size":32768,"exp2":15,"generator":"key_string_size","operation":"insert","iterations":25599,"utime":10.05,"etime":0.77,"rtime":14.87,"ops":2547.2,"usec":392.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":9.84,"etime":1.02,"rtime":11.26,"ops":12242.9,"usec":81.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":10.37,"etime":1.01,"rtime":11.75,"ops":11617.2,"usec":86.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_size_fixnum","operation":"insert","iterations":107789,"utime":9.87,"etime":1.14,"rtime":11.09,"ops":10920.9,"usec":91.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_size_fixnum","operation":"insert","iterations":93090,"utime":9.93,"etime":0.88,"rtime":10.98,"ops":9374.6,"usec":106.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_size_fixnum","operation":"insert","iterations":68266,"utime":9.52,"etime":0.96,"rtime":10.25,"ops":7170.8,"usec":139.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_size_fixnum","operation":"insert","iterations":46545,"utime":9.61,"etime":0.85,"rtime":10.18,"ops":4843.4,"usec":206.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_size_fixnum","operation":"insert","iterations":30117,"utime":10.21,"etime":0.98,"rtime":10.58,"ops":2949.8,"usec":339.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_size_fixnum","operation":"insert","iterations":16000,"utime":9.63,"etime":0.92,"rtime":9.83,"ops":1661.5,"usec":601.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_size_fixnum","operation":"insert","iterations":9142,"utime":10.29,"etime":0.94,"rtime":10.4,"ops":888.4,"usec":1125.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_size_fixnum","operation":"insert","iterations":4923,"utime":10.63,"etime":0.89,"rtime":10.7,"ops":463.1,"usec":2159.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_size_fixnum","operation":"insert","iterations":2461,"utime":10.27,"etime":0.87,"rtime":10.32,"ops":239.6,"usec":4173.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_size_fixnum","operation":"insert","iterations":1142,"utime":9.38,"etime":0.87,"rtime":9.48,"ops":121.7,"usec":8213.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_size_fixnum","operation":"insert","iterations":615,"utime":10.09,"etime":0.83,"rtime":10.16,"ops":61.0,"usec":16406.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"array_size_fixnum","operation":"insert","iterations":307,"utime":9.95,"etime":0.78,"rtime":10.07,"ops":30.9,"usec":32410.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"array_size_fixnum","operation":"insert","iterations":142,"utime":9.22,"etime":0.77,"rtime":9.32,"ops":15.4,"usec":64929.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.39,"etime":1.05,"rtime":10.79,"ops":12829.6,"usec":77.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_size_fixnum","operation":"insert","iterations":127999,"utime":10.0,"etime":0.99,"rtime":11.27,"ops":12799.9,"usec":78.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_size_fixnum","operation":"insert","iterations":136533,"utime":10.7,"etime":1.16,"rtime":12.29,"ops":12760.1,"usec":78.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_size_fixnum","operation":"insert","iterations":128000,"utime":10.31,"etime":1.07,"rtime":11.77,"ops":12415.1,"usec":80.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":10.31,"etime":1.11,"rtime":11.79,"ops":11684.8,"usec":85.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_size_fixnum","operation":"insert","iterations":113777,"utime":10.21,"etime":1.17,"rtime":11.85,"ops":11143.7,"usec":89.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_size_fixnum","operation":"insert","iterations":93090,"utime":9.32,"etime":1.34,"rtime":10.64,"ops":9988.2,"usec":100.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_size_fixnum","operation":"insert","iterations":78769,"utime":9.88,"etime":0.89,"rtime":11.33,"ops":7972.6,"usec":125.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_size_fixnum","operation":"insert","iterations":56888,"utime":9.82,"etime":1.02,"rtime":11.19,"ops":5793.1,"usec":172.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"utime":9.9,"etime":0.88,"rtime":11.37,"ops":3694.0,"usec":270.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_size_fixnum","operation":"insert","iterations":21333,"utime":9.77,"etime":0.89,"rtime":10.71,"ops":2183.5,"usec":458.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_size_fixnum","operation":"insert","iterations":11636,"utime":9.8,"etime":0.79,"rtime":10.63,"ops":1187.3,"usec":842.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_size_fixnum","operation":"insert","iterations":6399,"utime":10.57,"etime":0.77,"rtime":11.42,"ops":605.4,"usec":1651.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_size_fixnum","operation":"insert","iterations":2909,"utime":10.39,"etime":1.09,"rtime":11.45,"ops":280.0,"usec":3571.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_size_fixnum","operation":"insert","iterations":1684,"utime":10.34,"etime":0.94,"rtime":12.09,"ops":162.9,"usec":6140.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"utime":9.45,"etime":0.78,"rtime":10.94,"ops":76.9,"usec":12998.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":16,"size":65536,"exp2":16,"generator":"hash_size_fixnum","operation":"insert","iterations":399,"utime":10.77,"etime":0.75,"rtime":12.21,"ops":37.0,"usec":26992.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":17,"size":131072,"exp2":17,"generator":"hash_size_fixnum","operation":"insert","iterations":181,"utime":10.44,"etime":0.72,"rtime":11.59,"ops":17.3,"usec":57679.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":6.81,"etime":0.76,"rtime":7.76,"ops":13669.6,"usec":73.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"array_nest_fixnum","operation":"insert","iterations":113777,"utime":9.46,"etime":0.97,"rtime":10.74,"ops":12027.2,"usec":83.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":102399,"utime":10.57,"etime":0.86,"rtime":11.72,"ops":9687.7,"usec":103.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":9.62,"etime":0.93,"rtime":10.41,"ops":7096.3,"usec":140.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":46545,"utime":9.7,"etime":0.81,"rtime":10.2,"ops":4798.5,"usec":208.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":25599,"utime":9.17,"etime":0.82,"rtime":9.48,"ops":2791.6,"usec":358.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":16000,"utime":10.31,"etime":0.93,"rtime":10.52,"ops":1551.9,"usec":644.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"array_nest_fixnum","operation":"insert","iterations":8533,"utime":10.04,"etime":0.91,"rtime":10.15,"ops":849.9,"usec":1176.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":4266,"utime":9.74,"etime":0.86,"rtime":9.8,"ops":438.0,"usec":2283.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":2133,"utime":9.43,"etime":0.91,"rtime":9.47,"ops":226.2,"usec":4421.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1000,"utime":8.81,"etime":0.92,"rtime":8.83,"ops":113.5,"usec":8810.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"array_nest_fixnum","operation":"insert","iterations":615,"utime":10.6,"etime":0.84,"rtime":10.95,"ops":58.0,"usec":17235.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":307,"utime":10.44,"etime":0.87,"rtime":10.45,"ops":29.4,"usec":34006.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":9.89,"etime":1.07,"rtime":11.45,"ops":13805.2,"usec":72.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":1,"size":4,"exp2":2,"generator":"array_nest_fixnum","operation":"insert","iterations":107789,"utime":10.07,"etime":1.1,"rtime":11.12,"ops":10704.0,"usec":93.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":2,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":60235,"utime":10.03,"etime":1.0,"rtime":10.75,"ops":6005.5,"usec":166.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":3,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":10.72,"etime":0.82,"rtime":11.0,"ops":2170.9,"usec":460.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":4,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":6399,"utime":9.42,"etime":0.8,"rtime":9.54,"ops":679.3,"usec":1472.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":5,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":1777,"utime":10.4,"etime":1.3,"rtime":10.43,"ops":170.9,"usec":5852.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":6,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":421,"utime":9.74,"etime":0.97,"rtime":9.76,"ops":43.2,"usec":23135.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":146285,"utime":10.59,"etime":1.09,"rtime":12.01,"ops":13813.5,"usec":72.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":1,"size":8,"exp2":3,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.45,"etime":0.92,"rtime":11.41,"ops":8908.1,"usec":112.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":2,"size":64,"exp2":6,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":9.39,"etime":1.02,"rtime":9.67,"ops":2478.4,"usec":403.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":3,"size":512,"exp2":9,"generator":"array_nest_fixnum","operation":"insert","iterations":4000,"utime":9.9,"etime":0.94,"rtime":9.97,"ops":404.0,"usec":2475.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":4,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":470,"utime":9.24,"etime":0.88,"rtime":9.26,"ops":50.9,"usec":19659.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.09,"etime":0.99,"rtime":11.76,"ops":13531.5,"usec":73.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":1,"size":16,"exp2":4,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":10.12,"etime":0.95,"rtime":10.84,"ops":6745.7,"usec":148.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":2,"size":256,"exp2":8,"generator":"array_nest_fixnum","operation":"insert","iterations":8533,"utime":10.36,"etime":0.9,"rtime":10.64,"ops":823.6,"usec":1214.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":3,"size":4096,"exp2":12,"generator":"array_nest_fixnum","operation":"insert","iterations":533,"utime":9.93,"etime":0.91,"rtime":9.96,"ops":53.7,"usec":18630.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":0,"size":1,"exp2":0,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"utime":10.04,"etime":0.99,"rtime":11.54,"ops":13598.9,"usec":73.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":1,"size":32,"exp2":5,"generator":"array_nest_fixnum","operation":"insert","iterations":46545,"utime":10.42,"etime":0.83,"rtime":11.03,"ops":4466.9,"usec":223.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":2,"size":1024,"exp2":10,"generator":"array_nest_fixnum","operation":"insert","iterations":2285,"utime":10.4,"etime":0.85,"rtime":10.47,"ops":219.7,"usec":4551.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.06,"etime":1.11,"rtime":11.78,"ops":13571.9,"usec":73.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":1,"size":2,"exp2":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":9.59,"etime":1.14,"rtime":10.96,"ops":13347.2,"usec":74.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":2,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.6,"etime":1.37,"rtime":12.51,"ops":12880.5,"usec":77.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":3,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.62,"etime":1.15,"rtime":10.99,"ops":12522.9,"usec":79.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":4,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":107789,"utime":9.74,"etime":1.26,"rtime":11.29,"ops":11066.6,"usec":90.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":5,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.94,"etime":0.86,"rtime":11.64,"ops":9365.2,"usec":106.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":6,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":73142,"utime":9.97,"etime":0.92,"rtime":11.51,"ops":7336.2,"usec":136.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":7,"size":128,"exp2":7,"generator":"hash_nest_fixnum","operation":"insert","iterations":51200,"utime":9.85,"etime":1.07,"rtime":11.16,"ops":5198.0,"usec":192.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":8,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":31999,"utime":9.92,"etime":0.88,"rtime":11.13,"ops":3225.7,"usec":310.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":9,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":9.67,"etime":0.89,"rtime":10.79,"ops":1890.9,"usec":528.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":10,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":10666,"utime":10.25,"etime":0.9,"rtime":11.12,"ops":1040.6,"usec":961.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":11,"size":2048,"exp2":11,"generator":"hash_nest_fixnum","operation":"insert","iterations":4923,"utime":9.1,"etime":0.79,"rtime":10.12,"ops":541.0,"usec":1848.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":12,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":2666,"utime":9.74,"etime":0.86,"rtime":10.48,"ops":273.7,"usec":3653.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":13,"size":8192,"exp2":13,"generator":"hash_nest_fixnum","operation":"insert","iterations":1333,"utime":10.28,"etime":0.85,"rtime":11.35,"ops":129.7,"usec":7711.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":14,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":533,"utime":9.94,"etime":1.0,"rtime":10.89,"ops":53.6,"usec":18649.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":2,"power":15,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":249,"utime":9.21,"etime":0.91,"rtime":10.06,"ops":27.0,"usec":36988.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.37,"etime":1.38,"rtime":12.07,"ops":13166.2,"usec":76.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":1,"size":4,"exp2":2,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":8.87,"etime":1.26,"rtime":10.62,"ops":12827.2,"usec":78.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":2,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.58,"etime":1.16,"rtime":11.29,"ops":11876.5,"usec":84.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":3,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.11,"etime":0.93,"rtime":11.92,"ops":9207.7,"usec":108.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":4,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":46545,"utime":9.23,"etime":0.87,"rtime":10.62,"ops":5042.8,"usec":198.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":5,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":19692,"utime":10.72,"etime":0.88,"rtime":11.95,"ops":1836.9,"usec":544.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":6,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":5333,"utime":10.05,"etime":0.86,"rtime":10.99,"ops":530.6,"usec":1884.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":7,"size":16384,"exp2":14,"generator":"hash_nest_fixnum","operation":"insert","iterations":1333,"utime":10.55,"etime":0.8,"rtime":11.82,"ops":126.4,"usec":7914.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":4,"power":8,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":200,"utime":9.98,"etime":1.21,"rtime":10.86,"ops":20.0,"usec":49900.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":9.98,"etime":1.08,"rtime":11.44,"ops":13680.7,"usec":73.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":1,"size":8,"exp2":3,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.07,"etime":1.1,"rtime":11.66,"ops":12710.9,"usec":78.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":2,"size":64,"exp2":6,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.62,"etime":0.86,"rtime":11.39,"ops":9676.7,"usec":103.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":3,"size":512,"exp2":9,"generator":"hash_nest_fixnum","operation":"insert","iterations":36571,"utime":9.58,"etime":0.9,"rtime":10.8,"ops":3817.4,"usec":262.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":8,"power":4,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":6399,"utime":9.23,"etime":0.76,"rtime":10.11,"ops":693.3,"usec":1442.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.14,"etime":1.12,"rtime":11.66,"ops":13464.8,"usec":74.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":1,"size":16,"exp2":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.5,"etime":1.14,"rtime":11.09,"ops":12681.1,"usec":78.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":2,"size":256,"exp2":8,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":9.72,"etime":1.08,"rtime":11.36,"ops":6197.0,"usec":161.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":3,"size":4096,"exp2":12,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":9.68,"etime":0.97,"rtime":10.8,"ops":777.8,"usec":1285.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":16,"power":4,"size":65536,"exp2":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":380,"utime":9.72,"etime":1.0,"rtime":10.61,"ops":39.1,"usec":25578.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":0,"size":1,"exp2":0,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.08,"etime":1.01,"rtime":11.62,"ops":13544.9,"usec":73.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":1,"size":32,"exp2":5,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.81,"etime":1.01,"rtime":12.84,"ops":11840.8,"usec":84.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":2,"size":1024,"exp2":10,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":9.74,"etime":0.8,"rtime":12.12,"ops":2628.2,"usec":380.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, + {"base":32,"power":3,"size":32768,"exp2":15,"generator":"hash_nest_fixnum","operation":"insert","iterations":1000,"utime":10.47,"etime":0.9,"rtime":11.82,"ops":95.5,"usec":10470.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120430-1422","tag":"array_fast"}, ]; diff --git a/bench/exp_series.rb b/bench/exp_series.rb index 907d734..79bcb34 100644 --- a/bench/exp_series.rb +++ b/bench/exp_series.rb @@ -41,7 +41,10 @@ options = options_with_help.collect{|option|option[0...3]} GetoptLong.new(*options).each do |opt, arg| case opt when '--help' - puts "#{$0} -- #{$description}\nusage: #{$0} [options]\noptions:" + puts "#{$0} -- #{$description}\n" + puts "usage: #{$0} [performance-options] [-- test-unit-options]" + puts "example: #{$0} --mode c --tag with-c-ext -- --verbose --name test_insert" + puts "performance-options:" options_with_help.each{|option| puts "#{option[0]}#{option[3]}, #{option[1]}#{option[3]}\n\t#{option[4]}"} exit 0 when '--mode' @@ -77,6 +80,8 @@ def sys_info end class TestExpPerformance < Test::Unit::TestCase + setup :setup_test_set + teardown :teardown_test_set def array_nest(base, level, obj) return obj if level == 0 @@ -90,6 +95,83 @@ class TestExpPerformance < Test::Unit::TestCase return h end + def test__array_nest + assert_equal(1, array_nest(2,0,1)) + assert_equal([1, 1], array_nest(2,1,1)) + assert_equal([[1, 1], [1, 1]], array_nest(2,2,1)) + assert_equal([[[1, 1], [1, 1]], [[1, 1], [1, 1]]], array_nest(2,3,1)) + assert_equal(1, array_nest(4,0,1)) + assert_equal([1, 1, 1, 1], array_nest(4,1,1)) + assert_equal([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], array_nest(4,2,1)) + assert_equal(1, array_nest(8,0,1)) + assert_equal([1, 1, 1, 1, 1, 1, 1, 1], array_nest(8,1,1)) + end + + def test__hash_nest + assert_equal(1, hash_nest(2, 0, 1)) + assert_equal({"0"=>1, "1"=>1}, hash_nest(2, 1, 1)) + assert_equal({"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}, hash_nest(2, 2, 1)) + assert_equal({"0"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}, + "1"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}}, hash_nest(2, 3, 1)) + assert_equal(1, hash_nest(4,0,1)) + assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1}, hash_nest(4,1,1)) + assert_equal({"0"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, + "1"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, + "2"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, + "3"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}}, hash_nest(4,2,1)) + assert_equal(1, hash_nest(8,0,1)) + assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1, "4"=>1, "5"=>1, "6"=>1, "7"=>1}, hash_nest(8,1,1)) + end + + # Performance Tuning Engineering + ## Completed + ### How to measure and compare pure Ruby versus C extension performance + ## Current Work Items + ### Profiling of C extension + ## Overall Strategy + ### Prioritize/Review Ruby 1.9.3, JRuby 1.6.7, Ruby 1.8.7 + ### Run spectrum of exploratory performance tests + ### Graph results with flot in HTML wrapper - http://code.google.com/p/flot/ + ### Select test for profiling + ### Find where time is being spent + ### Construct specific performance test + ### Iteratively tune specific performance test + ### Iterate selection of test for profiling + ## Notes + ### Start with Create/insert, writing comes first + ### Then Read/find, reading comes next. both findOne and find-cursor + ### Update is primarily server load with minimal driver load for conditions + ### Delete/remove is primarily server load with minimal driver load for conditions + ## Benefits + ### Performance Improvements + ### Knowledge of Ruby driver and techniques + ### Perhaps architecture and design improvements + ### Lessons transferable to other drivers + ## HW Info + ### Linux - /proc/cpuinfo + ### Mac OS X - sysctl -a hw + + def setup_test_set + @conn = Mongo::Connection.new + @conn.drop_database($db_name) + @db = @conn.db($db_name) + @coll = @db.collection($collection_name) + @coll.remove + @results = [] + puts + p ({'mode' => $mode , 'hostname' => $hostname, 'osname' => $osname, 'date' => $date, 'tag' => $tag}) + puts sys_info + end + + def teardown_test_set + # consider inserting the results into a database collection + # Test::Unit::TestCase pollutes STDOUT, so write to a file + File.open("exp_series-#{$date}-#{$tag}.js", 'w+'){|f| + f.puts("#{@results.to_json.gsub(/\[/, "").gsub(/(}[\],])/, "},\n")}") unless @results.empty? + } + @conn.drop_database($db_name) + end + def estimate_iterations(db, coll, doc, setup, teardown) start_time = Time.now iterations = 1 @@ -117,7 +199,9 @@ class TestExpPerformance < Test::Unit::TestCase end def valuate(db, coll, doc, setup, teardown) + @conn.drop_database($db_name) # hack to reduce paging iterations, etime = estimate_iterations(db, coll, doc, setup, teardown) { yield } + @conn.drop_database($db_name) # hack to reduce paging utime, rtime = measure_iterations(db, coll, doc, setup, teardown, iterations) { yield } return [iterations, utime, rtime, etime] end @@ -193,7 +277,7 @@ class TestExpPerformance < Test::Unit::TestCase end def cursor_setup(db, coll, doc, iterations) - (0...iterations).each{insert(coll, doc)} + (0...(iterations - coll.size)).each{insert(coll, doc)} @cursor = coll.find @queries = 1 end @@ -203,9 +287,9 @@ class TestExpPerformance < Test::Unit::TestCase coll.insert(doc) # note that insert stores :_id in doc and subsequent inserts are updates end - def find_one(coll, doc) - h = coll.find_one - raise "find_one failed" unless h + def insert_safe(coll, doc) + doc.delete(:_id) # delete :_id to insert + coll.insert(doc, :safe => true) # note that insert stores :_id in doc and subsequent inserts are updates end def cursor_next(coll, doc) @@ -217,84 +301,23 @@ class TestExpPerformance < Test::Unit::TestCase end end + def find_one(coll, doc) + h = coll.find_one + raise "find_one failed" unless h + end + def default_teardown(db, coll) coll.remove + raise 'coll not removed' if coll.size > 0 end def cursor_teardown(db, coll) - coll.remove - puts "queries: #{@queries}" + puts "queries: #{@queries}" if @queries > 1 + default_teardown(db, coll) end - def test_array_nest - assert_equal(1, array_nest(2,0,1)) - assert_equal([1, 1], array_nest(2,1,1)) - assert_equal([[1, 1], [1, 1]], array_nest(2,2,1)) - assert_equal([[[1, 1], [1, 1]], [[1, 1], [1, 1]]], array_nest(2,3,1)) - assert_equal(1, array_nest(4,0,1)) - assert_equal([1, 1, 1, 1], array_nest(4,1,1)) - assert_equal([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], array_nest(4,2,1)) - assert_equal(1, array_nest(8,0,1)) - assert_equal([1, 1, 1, 1, 1, 1, 1, 1], array_nest(8,1,1)) - end - - def test_hash_nest # incomplete - assert_equal(1, hash_nest(2, 0, 1)) - assert_equal({"0"=>1, "1"=>1}, hash_nest(2, 1, 1)) - assert_equal({"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}, hash_nest(2, 2, 1)) - assert_equal({"0"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}, - "1"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}}, hash_nest(2, 3, 1)) - assert_equal(1, hash_nest(4,0,1)) - assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1}, hash_nest(4,1,1)) - assert_equal({"0"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, - "1"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, - "2"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}, - "3"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}}, hash_nest(4,2,1)) - assert_equal(1, hash_nest(8,0,1)) - assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1, "4"=>1, "5"=>1, "6"=>1, "7"=>1}, hash_nest(8,1,1)) - end - - # Performance Tuning Engineering - ## Completed - ### How to measure and compare pure Ruby versus C extension performance - ## Current Work Items - ### Profiling of C extension - ## Overall Strategy - ### Prioritize/Review Ruby 1.9.3, JRuby 1.6.7, Ruby 1.8.7 - ### Run spectrum of exploratory performance tests - ### Graph results with flot in HTML wrapper - http://code.google.com/p/flot/ - ### Select test for profiling - ### Find where time is being spent - ### Construct specific performance test - ### Iteratively tune specific performance test - ### Iterate selection of test for profiling - ## Notes - ### Start with Create/insert, writing comes first - ### Then Read/find, reading comes next. both findOne and find-cursor - ### Update is primarily server load with minimal driver load for conditions - ### Delete/remove is primarily server load with minimal driver load for conditions - ## Benefits - ### Performance Improvements - ### Knowledge of Ruby driver and techniques - ### Perhaps architecture and design improvements - ### Lessons transferable to other drivers - ## HW Info - ### Linux - /proc/cpuinfo - ### Mac OS X - sysctl -a hw - - def test_zzz_exp_blanket - puts - p ({'mode' => $mode , 'hostname' => $hostname, 'osname' => $osname, 'date' => $date, 'tag' => $tag}) - puts sys_info - - conn = Mongo::Connection.new - conn.drop_database($db_name) - db = conn.db($db_name) - coll = db.collection($collection_name) - coll.remove - + def test_insert tests = [ - # Create/insert [2, 15, :value_string_size, :null_setup, :insert, :default_teardown], [2, 15, :key_string_size, :null_setup, :insert, :default_teardown], [2, 14, :array_size_fixnum, :null_setup, :insert, :default_teardown], @@ -304,34 +327,51 @@ class TestExpPerformance < Test::Unit::TestCase [8, 4, :array_nest_fixnum, :null_setup, :insert, :default_teardown], [16, 3, :array_nest_fixnum, :null_setup, :insert, :default_teardown], [32, 2, :array_nest_fixnum, :null_setup, :insert, :default_teardown], - [2, 15, :hash_nest_fixnum, :null_setup, :insert, :default_teardown ], - [4, 8, :hash_nest_fixnum, :null_setup, :insert, :default_teardown ], - [8, 4, :hash_nest_fixnum, :null_setup, :insert, :default_teardown ], - [16, 4, :hash_nest_fixnum, :null_setup, :insert, :default_teardown ], - [32, 3, :hash_nest_fixnum, :null_setup, :insert, :default_teardown ], + [2, 15, :hash_nest_fixnum, :null_setup, :insert, :default_teardown], + [4, 8, :hash_nest_fixnum, :null_setup, :insert, :default_teardown], + [8, 4, :hash_nest_fixnum, :null_setup, :insert, :default_teardown], + [16, 4, :hash_nest_fixnum, :null_setup, :insert, :default_teardown], + [32, 3, :hash_nest_fixnum, :null_setup, :insert, :default_teardown], + ] + tests.each do |base, max_power, generator, setup, operation, teardown| + # consider moving 'method' as permitted by scope + @results += power_test(base, max_power, @db, @coll, method(generator), method(setup), method(operation), method(teardown)) + end + end - # synthesized mix, real-world data pending + def test_insert_safe + tests = [ + [2, 15, :value_string_size, :null_setup, :insert_safe, :default_teardown], + [2, 15, :key_string_size, :null_setup, :insert_safe, :default_teardown], + [2, 14, :array_size_fixnum, :null_setup, :insert_safe, :default_teardown], + [2, 17, :hash_size_fixnum, :null_setup, :insert_safe, :default_teardown], + [2, 12, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [4, 6, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [8, 4, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [16, 3, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [32, 2, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [2, 15, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [4, 8, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [8, 4, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [16, 4, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + [32, 3, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown], + ] + tests.each do |base, max_power, generator, setup, operation, teardown| + # consider moving 'method' as permitted by scope + @results += power_test(base, max_power, @db, @coll, method(generator), method(setup), method(operation), method(teardown)) + end + end - # Read/find_one -=begin - [2, 15, :value_string_size, :find_one_setup, :find_one, :default_teardown], - [2, 15, :key_string_size, :find_one_setup, :find_one, :default_teardown], - [2, 14, :array_size_fixnum, :find_one_setup, :find_one, :default_teardown], - [2, 17, :hash_size_fixnum, :find_one_setup, :find_one, :default_teardown], - [2, 12, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], - [4, 6, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], - [8, 4, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], - [16, 3, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], - [32, 2, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], - [2, 15, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown ], - [4, 8, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown ], - [8, 4, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown ], - [16, 4, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown ], - [32, 3, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown ], -=end + def xtest_insert_many - # Read/find/next -=begin + end + + def xtest_insert_many_safe + + end + + def test_find + tests = [ [2, 15, :value_string_size, :cursor_setup, :cursor_next, :cursor_teardown], [2, 15, :key_string_size, :cursor_setup, :cursor_next, :cursor_teardown], [2, 14, :array_size_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], @@ -341,32 +381,63 @@ class TestExpPerformance < Test::Unit::TestCase [8, 4, :array_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], [16, 3, :array_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], [32, 2, :array_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], - [2, 15, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown ], - [4, 8, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown ], - [8, 4, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown ], - [16, 4, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown ], - [32, 3, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown ], -=end - - # Update pending - - # Delete/remove pending - + [2, 15, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], + [4, 8, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], + [8, 4, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], + [16, 4, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], + [32, 3, :hash_nest_fixnum, :cursor_setup, :cursor_next, :cursor_teardown], ] - results = [] tests.each do |base, max_power, generator, setup, operation, teardown| # 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 - # consider inserting the results into a database collection - # Test::Unit::TestCase pollutes STDOUT, so write to a file - File.open("exp_series-#{$date}-#{$tag}.js", 'w'){|f| - f.puts("#{results.to_json.gsub(/\[/, "").gsub(/(}[\],])/, "},\n")}") - } - - conn.drop_database($db_name) end + def test_find_one + tests = [ + [2, 15, :value_string_size, :find_one_setup, :find_one, :default_teardown], + [2, 15, :key_string_size, :find_one_setup, :find_one, :default_teardown], + [2, 14, :array_size_fixnum, :find_one_setup, :find_one, :default_teardown], + [2, 17, :hash_size_fixnum, :find_one_setup, :find_one, :default_teardown], + [2, 12, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [4, 6, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [8, 4, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [16, 3, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [32, 2, :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [2, 15, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [4, 8, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [8, 4, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [16, 4, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + [32, 3, :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown], + ] + tests.each do |base, max_power, generator, setup, operation, teardown| + # consider moving 'method' as permitted by scope + @results += power_test(base, max_power, @db, @coll, method(generator), method(setup), method(operation), method(teardown)) + end + end + + def xtest_update + tests = [ + # pending + ] + tests.each do |base, max_power, generator, setup, operation, teardown| + # consider moving 'method' as permitted by scope + @results += power_test(base, max_power, @db, @coll, method(generator), method(setup), method(operation), method(teardown)) + end + end + + def xtest_remove + tests = [ + # pending + ] + tests.each do |base, max_power, generator, setup, operation, teardown| + # consider moving 'method' as permitted by scope + @results += power_test(base, max_power, @db, @coll, method(generator), method(setup), method(operation), method(teardown)) + end + end + + # synthesized mix, real-world data pending + end diff --git a/ext/cbson/bson_buffer.h b/ext/cbson/bson_buffer.h index 1068024..bb72801 100644 --- a/ext/cbson/bson_buffer.h +++ b/ext/cbson/bson_buffer.h @@ -32,6 +32,7 @@ bson_buffer_t bson_buffer_new(void); /* Set the max size for this buffer. * Note: this is not a hard limit. */ void bson_buffer_set_max_size(bson_buffer_t buffer, int max_size); +int bson_buffer_get_max_size(bson_buffer_t buffer); /* Free the memory allocated for `buffer`. * Return non-zero on failure. */ diff --git a/ext/cbson/cbson.c b/ext/cbson/cbson.c index c61c3f0..1fd4067 100644 --- a/ext/cbson/cbson.c +++ b/ext/cbson/cbson.c @@ -139,13 +139,13 @@ static void write_utf8(bson_buffer_t buffer, VALUE string, char check_null) { #define EXTENDED RE_OPTION_EXTENDED #endif -/* TODO review malloc versus Ruby Enterprise Edition with tcmalloc */ -/* TODO we ought to check that the malloc was successful and raise an exception if not. */ +#define ARRAY_KEY_BUFFER_SIZE 10 +// use 8^(ARRAY_KEY_BUFFER_SIZE-1) as CPP safe bounds approximation for limit of 10^(ARRAY_KEY_BUFFER_SIZE-1)-1 +#define ARRAY_KEY_MAX_CPP (1 << (3 * (ARRAY_KEY_BUFFER_SIZE-1))) + #ifdef _WIN32 || _MSC_VER -#define SCINT(i) (_scprintf("%d", i) + 1) #define SNPRINTF _snprintf #else -#define SCINT(i) (snprintf(NULL, 0, "%d", i) + 1) #define SNPRINTF snprintf #endif @@ -277,6 +277,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) { bson_buffer_position length_location, start_position, obj_length; int items, i; VALUE* values; + char name[ARRAY_KEY_BUFFER_SIZE]; write_name_and_type(buffer, key, 0x04); start_position = bson_buffer_get_position(buffer); @@ -288,15 +289,14 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) { } items = RARRAY_LENINT(value); - int vslength = SCINT(items); - char* name = malloc(vslength); + if (items > ARRAY_KEY_MAX_CPP) + rb_raise(rb_eTypeError, "array size too large"); for(i = 0; i < items; i++) { VALUE key; - SNPRINTF(name, vslength, "%d", i); + SNPRINTF(name, ARRAY_KEY_BUFFER_SIZE, "%d", i); key = rb_str_new2(name); write_element_with_id(key, rb_ary_entry(value, i), pack_extra(buffer, check_keys)); } - free(name); // write null byte and fill in length SAFE_WRITE(buffer, &zero, 1); obj_length = bson_buffer_get_position(buffer) - start_position;