mirror of https://github.com/seald/nedb
parent
bc29f5a56d
commit
2131f7cb68
@ -0,0 +1,51 @@ |
|||||||
|
var Datastore = require('../lib/datastore') |
||||||
|
, benchDb = 'workspace/insert.bench.db' |
||||||
|
, async = require('async') |
||||||
|
, commonUtilities = require('./commonUtilities') |
||||||
|
, execTime = require('exec-time') |
||||||
|
, profiler = new execTime('INSERT BENCH') |
||||||
|
, d = new Datastore(benchDb) |
||||||
|
, program = require('commander') |
||||||
|
, n |
||||||
|
; |
||||||
|
|
||||||
|
program |
||||||
|
.option('-n --number [number]', 'Size of the collection to test on', parseInt) |
||||||
|
.option('-i --with-index', 'Test with an index') |
||||||
|
.parse(process.argv); |
||||||
|
|
||||||
|
n = program.number || 10000; |
||||||
|
|
||||||
|
console.log("----------------------------"); |
||||||
|
console.log("Test with " + n + " documents"); |
||||||
|
console.log("----------------------------"); |
||||||
|
|
||||||
|
async.waterfall([ |
||||||
|
async.apply(commonUtilities.prepareDb, benchDb) |
||||||
|
, function (cb) { |
||||||
|
d.loadDatabase(function (err) { |
||||||
|
if (err) { return cb(err); } |
||||||
|
cb(); |
||||||
|
}); |
||||||
|
} |
||||||
|
, function (cb) { profiler.beginProfiling(); return cb(); } |
||||||
|
, async.apply(commonUtilities.insertDocs, d, n, profiler) |
||||||
|
, function (cb) { |
||||||
|
var i; |
||||||
|
|
||||||
|
profiler.step('Begin calling ensureIndex ' + n + ' docs'); |
||||||
|
|
||||||
|
for (i = 0; i < n; i += 1) { |
||||||
|
d.ensureIndex({ fieldName: 'docNumber' }); |
||||||
|
delete d.indexes.docNumber; |
||||||
|
} |
||||||
|
|
||||||
|
console.log("Average time for one ensureIndex: " + (profiler.elapsedSinceLastStep() / n) + "ms"); |
||||||
|
profiler.step('Finished calling ensureIndex ' + n + ' times'); |
||||||
|
} |
||||||
|
], function (err) { |
||||||
|
profiler.step("Benchmark finished"); |
||||||
|
|
||||||
|
if (err) { return console.log("An error was encountered: ", err); } |
||||||
|
}); |
||||||
|
|
Loading…
Reference in new issue