Files
owl/tools/benchmarks/shared/utils.js
T
2019-06-28 10:33:13 +02:00

59 lines
1.5 KiB
JavaScript

//------------------------------------------------------------------------------
// Generating demo data
//------------------------------------------------------------------------------
const AUTHORS = ["Aaron", "David", "Vincent"];
const CONTENT = [
"Lorem ipsum dolor sit amet",
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem",
"Excepteur sint occaecat cupidatat non proident"
];
function chooseRandomly(array) {
const index = Math.floor(Math.random() * array.length);
return array[index];
}
let nextId = 1;
export function buildData(n = 1000) {
const data = [];
for (let i = 0; i < n; i++) {
let id = nextId++;
data.push({
id: id,
author: chooseRandomly(AUTHORS),
msg: `${id}: ${chooseRandomly(CONTENT)}`,
likes: 0
});
}
return data;
}
//------------------------------------------------------------------------------
// Measuring helpers
//------------------------------------------------------------------------------
export function formatNumber(n) {
return Number(n).toFixed();
}
let startTime;
let lastMeasure;
export function startMeasure(descr) {
startTime = performance.now();
lastMeasure = descr;
}
export function stopMeasure(cb) {
let last = lastMeasure;
if (lastMeasure) {
window.setTimeout(function() {
lastMeasure = null;
const stop = performance.now();
const delta = stop - startTime;
const msg = `[${last}] took ${formatNumber(delta)}ms`;
console.log(msg);
if (cb) {
cb({ msg, delta });
}
}, 0);
}
}