sharp/test/bench/parallel.js
Lovell Fuller 4f9f8179a6
Linter: apply all recommended biome settings
Enforces previously-skipped useArrowFunction check
2025-11-04 09:41:45 +00:00

45 lines
1.1 KiB
JavaScript

/*!
Copyright 2013 Lovell Fuller and others.
SPDX-License-Identifier: Apache-2.0
*/
process.env.UV_THREADPOOL_SIZE = 64;
const assert = require('node:assert');
const async = require('async');
const sharp = require('../../');
const fixtures = require('../fixtures');
const width = 720;
const height = 480;
sharp.concurrency(1);
const timer = setInterval(() => {
console.dir(sharp.counters());
}, 100);
async.mapSeries([1, 1, 2, 4, 8, 16, 32, 64], (parallelism, next) => {
const start = Date.now();
async.times(parallelism,
(_id, callback) => {
sharp(fixtures.inputJpg).resize(width, height).toBuffer((err, buffer) => {
buffer = null;
callback(err, Date.now() - start);
});
},
(err, ids) => {
assert(!err);
assert(ids.length === parallelism);
ids.sort();
const mean = ids.reduce((a, b) => a + b) / ids.length;
console.log(`${parallelism} parallel calls: fastest=${ids[0]}ms slowest=${ids[ids.length - 1]}ms mean=${mean}ms`);
next();
}
);
}, () => {
clearInterval(timer);
console.dir(sharp.counters());
});