Swap-Aggregator-Subgraph/node_modules/fs-jetpack/benchmark/utils.js
Richa-iitr d211083153 Revert "Revert "added handler""
This reverts commit c36ee8c5ca.
2022-07-03 07:30:05 +05:30

81 lines
1.8 KiB
JavaScript

"use strict";
const os = require("os");
const childProcess = require("child_process");
const prettyBytes = require("pretty-bytes");
const promisify = require("../lib/utils/promisify");
const jetpack = require("..");
const testDirPath = () => {
return `${os.tmpdir()}/jetpack-benchmark`;
};
const prepareJetpackTestDir = () => {
return jetpack.dir(testDirPath(), { empty: true });
};
const prepareFiles = (jetpackDir, creationConfig) => {
return new Promise((resolve, reject) => {
let count = 0;
const content = new Buffer(creationConfig.size);
const makeOneFile = () => {
jetpackDir.fileAsync(`${count}.txt`, { content }).then(() => {
count += 1;
if (count < creationConfig.files) {
makeOneFile();
} else {
resolve();
}
}, reject);
};
console.log(
`Preparing ${creationConfig.files} test files (${prettyBytes(
creationConfig.size
)} each)...`
);
makeOneFile();
});
};
const startTimer = startMessage => {
const start = Date.now();
process.stdout.write(`${startMessage} ... `);
const stop = () => {
const time = Date.now() - start;
console.log(`${time}ms`);
return time;
};
return stop;
};
const waitAWhile = () => {
return new Promise(resolve => {
console.log("Waiting 5s to allow hardware buffers be emptied...");
setTimeout(resolve, 5000);
});
};
const showDifferenceInfo = (jetpackTime, nativeTime) => {
const perc = Math.round((jetpackTime / nativeTime) * 100) - 100;
console.log(`Jetpack is ${perc}% slower than native`);
};
const cleanAfterTest = () => {
console.log("Cleaning up after test...");
return jetpack.removeAsync(testDirPath());
};
module.exports = {
prepareJetpackTestDir,
prepareFiles,
startTimer,
waitAWhile,
exec: promisify(childProcess.exec),
showDifferenceInfo,
cleanAfterTest
};