X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Fbenchmarks-utils.mjs;h=c88ada12fa61eda4c474b4142bbd81dbb59ae06d;hb=296cba79ddbf15e2fd8510a4ba1ef0079ef77ee1;hp=45e8cc0ea5882ae0804664d8f25e88f7265f6fe8;hpb=8f810074232deefe64634a8942b1db5b8d3bb0dc;p=poolifier.git diff --git a/benchmarks/benchmarks-utils.mjs b/benchmarks/benchmarks-utils.mjs index 45e8cc0e..c88ada12 100644 --- a/benchmarks/benchmarks-utils.mjs +++ b/benchmarks/benchmarks-utils.mjs @@ -8,7 +8,7 @@ import { } from '../lib/index.mjs' import { PoolTypes, WorkerFunctions, WorkerTypes } from './benchmarks-types.mjs' -async function runTest (pool, { taskExecutions, workerData }) { +export const runTest = async (pool, { taskExecutions, workerData }) => { return new Promise((resolve, reject) => { let executions = 0 for (let i = 1; i <= taskExecutions; i++) { @@ -29,7 +29,10 @@ async function runTest (pool, { taskExecutions, workerData }) { }) } -function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { +export const generateRandomInteger = ( + max = Number.MAX_SAFE_INTEGER, + min = 0 +) => { if (max < min || max < 0 || min < 0) { throw new RangeError('Invalid interval') } @@ -41,13 +44,14 @@ function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { return Math.floor(Math.random() * (max + 1)) } -function jsonIntegerSerialization (n) { +const jsonIntegerSerialization = n => { for (let i = 0; i < n; i++) { const o = { a: i } JSON.stringify(o) } + return { ok: 1 } } /** @@ -55,8 +59,8 @@ function jsonIntegerSerialization (n) { * @param {number} n - The number of fibonacci numbers to generate. * @returns {number} - The nth fibonacci number. */ -function fibonacci (n) { - if (n <= 1) return 1 +const fibonacci = n => { + if (n <= 1) return n return fibonacci(n - 1) + fibonacci(n - 2) } @@ -65,19 +69,19 @@ function fibonacci (n) { * @param {number} n - The number to calculate the factorial of. * @returns {number} - The factorial of n. */ -function factorial (n) { +const factorial = n => { if (n === 0) { return 1 } return factorial(n - 1) * n } -function readWriteFiles ( +const readWriteFiles = ( n, baseDirectory = `/tmp/poolifier-benchmarks/${crypto.randomInt( 281474976710655 )}` -) { +) => { if (fs.existsSync(baseDirectory) === true) { fs.rmSync(baseDirectory, { recursive: true }) } @@ -91,9 +95,10 @@ function readWriteFiles ( fs.readFileSync(filePath, 'utf8') } fs.rmSync(baseDirectory, { recursive: true }) + return { ok: 1 } } -function executeWorkerFunction (data) { +export const executeWorkerFunction = data => { switch (data.function) { case WorkerFunctions.jsonIntegerSerialization: return jsonIntegerSerialization(data.taskSize || 1000) @@ -108,7 +113,7 @@ function executeWorkerFunction (data) { } } -function buildPool (workerType, poolType, poolSize, poolOptions) { +export const buildPool = (workerType, poolType, poolSize, poolOptions) => { switch (poolType) { case PoolTypes.fixed: switch (workerType) { @@ -130,15 +135,15 @@ function buildPool (workerType, poolType, poolSize, poolOptions) { switch (workerType) { case WorkerTypes.thread: return new DynamicThreadPool( - poolSize / 2, - poolSize * 3, + Math.floor(poolSize / 2), + poolSize, './benchmarks/internal/thread-worker.mjs', poolOptions ) case WorkerTypes.cluster: return new DynamicClusterPool( - poolSize / 2, - poolSize * 3, + Math.floor(poolSize / 2), + poolSize, './benchmarks/internal/cluster-worker.mjs', poolOptions ) @@ -146,12 +151,3 @@ function buildPool (workerType, poolType, poolSize, poolOptions) { break } } - -export { - WorkerFunctions, - buildPool, - executeWorkerFunction, - generateRandomInteger, - readWriteFiles, - runTest -}