INNER CODE UNIT · TypeScript
benchmark
SierraSoftworks/Iridium · benchmarks/mongodb.ts:41
function benchmark(name: string, prepare: (objects: UserDocument[]) => Bluebird<any>|null, run: (objects: UserDocument[]) => Bluebird<any>, compareTo?: string) {
return Bluebird.resolve(new Array(samples)).map(() => {
var objects: UserDocument[] = new Array(intensity);
for (var i = 0; i < objects.length; i++)
objects[i] = { _id: crypto.pseudoRandomBytes(16).toString("hex") };
return Bluebird.resolve().then(() => prepare(objects)).then(() => {
var start = new Date();
return Bluebird.resolve().then(() => run(objects)).then(() => {
var time = new Date().valueOf() - start.valueOf();
return time;
});
})
}, { concurrency: 1 }).then(times => {
results[name] = _.reduce(<number[]><any>times,(x, y) => x + y, 0) / times.length;
console.log("%s: %dms", name, results[name]);
if (compareTo) {
if (Math.abs(results[name] - results[compareTo]) / results[compareTo] < 0.1) { }