Files
pyrofetes-frontend/node_modules/piscina/benchmark/piscina-queue-comparison.js
CHEVALLIER Abel cb235644dc init
2025-11-13 16:23:22 +01:00

42 lines
1.0 KiB
JavaScript

const { Bench } = require('tinybench');
const { Piscina, FixedQueue, ArrayTaskQueue } = require('..');
const { resolve } = require('node:path');
const QUEUE_SIZE = 100_000;
const bench = new Bench({ time: 100, warmup: true });
bench
.add('Piscina with ArrayTaskQueue', async () => {
const queue = new ArrayTaskQueue();
const pool = new Piscina({
filename: resolve(__dirname, 'fixtures/add.js'),
taskQueue: queue
});
const tasks = [];
for (let i = 0; i < QUEUE_SIZE; i++) {
tasks.push(pool.run({ a: 4, b: 6 }));
}
await Promise.all(tasks);
await pool.destroy();
})
.add('Piscina with FixedQueue', async () => {
const queue = new FixedQueue();
const pool = new Piscina({
filename: resolve(__dirname, 'fixtures/add.js'),
taskQueue: queue
});
const tasks = [];
for (let i = 0; i < QUEUE_SIZE; i++) {
tasks.push(pool.run({ a: 4, b: 6 }));
}
await Promise.all(tasks);
await pool.destroy();
});
(async () => {
await bench.run();
console.table(bench.table());
})();