const async = require('async') const program = require('commander') const Datastore = require('../lib/datastore') const commonUtilities = require('./commonUtilities') const Profiler = require('./profiler') const benchDb = 'workspace/loaddb.bench.db' const profiler = new Profiler('LOADDB BENCH') const d = new Datastore(benchDb) program .option('-n --number [number]', 'Size of the collection to test on', parseInt) .option('-i --with-index', 'Test with an index') .parse(process.argv) const n = program.number || 10000 console.log('----------------------------') console.log('Test with ' + n + ' documents') console.log(program.withIndex ? 'Use an index' : "Don't use an index") console.log('----------------------------') async.waterfall([ async.apply(commonUtilities.prepareDb, benchDb), function (cb) { d.loadDatabase(cb) }, function (cb) { profiler.beginProfiling(); return cb() }, async.apply(commonUtilities.insertDocs, d, n, profiler), async.apply(commonUtilities.loadDatabase, d, n, profiler) ], function (err) { profiler.step('Benchmark finished') if (err) { return console.log('An error was encountered: ', err) } })