import {
loadBenchmark,
readModulePath,
runWorker,
writeResult,
} from './worker-utils.js';
const memoryWarmupIterations = 10;
const memorySampleIterations = 10;
runWorker(async () => {
const benchmark = await loadBenchmark(readModulePath());
writeResult(await measureMemoryUsage(benchmark));
});
async function measureMemoryUsage(benchmark) {
await runIterations(benchmark, memoryWarmupIterations);
const memBaseline = process.memoryUsage().heapUsed;
await runIterations(benchmark, memorySampleIterations);
return (
(process.memoryUsage().heapUsed - memBaseline) / memorySampleIterations
);
}
async function runIterations(benchmark, iterations) {
for (let i = 0; i < iterations; ++i) {
await benchmark.measure();
}
}