30 lines
718 B
JavaScript
30 lines
718 B
JavaScript
'use strict';
|
|
const { Piscina } = require('..');
|
|
const { resolve } = require('path');
|
|
|
|
async function simpleBenchmark ({ duration = 10000 } = {}) {
|
|
const pool = new Piscina({ filename: resolve(__dirname, 'fixtures/add.js') });
|
|
let done = 0;
|
|
|
|
const results = [];
|
|
const start = process.hrtime.bigint();
|
|
while (pool.queueSize === 0) {
|
|
results.push(scheduleTasks());
|
|
}
|
|
|
|
async function scheduleTasks () {
|
|
while ((process.hrtime.bigint() - start) / 1_000_000n < duration) {
|
|
await pool.runTask({ a: 4, b: 6 });
|
|
done++;
|
|
}
|
|
}
|
|
|
|
await Promise.all(results);
|
|
|
|
return done / duration * 1e3;
|
|
}
|
|
|
|
simpleBenchmark().then((opsPerSecond) => {
|
|
console.log(`opsPerSecond: ${opsPerSecond}`);
|
|
});
|