X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Fbenchmarks-utils.mjs;h=259fca5696b0a32c62c040966196ed78f052d9ca;hb=10808165716dce47fb2ba6fdb0f92ccb55a28d4b;hp=225143f1a1b4d1d483342ad19903e0f4affaec07;hpb=bac873bd6581e5d5c0884bc520e9ec3c446509e6;p=poolifier.git diff --git a/benchmarks/benchmarks-utils.mjs b/benchmarks/benchmarks-utils.mjs index 225143f1..259fca56 100644 --- a/benchmarks/benchmarks-utils.mjs +++ b/benchmarks/benchmarks-utils.mjs @@ -1,12 +1,14 @@ -import crypto from 'crypto' -import fs from 'fs' +import crypto from 'node:crypto' +import fs from 'node:fs' import { DynamicClusterPool, DynamicThreadPool, FixedClusterPool, - FixedThreadPool + FixedThreadPool, + PoolTypes, + WorkerTypes } from '../lib/index.mjs' -import { PoolTypes, WorkerFunctions, WorkerTypes } from './benchmarks-types.mjs' +import { TaskFunctions } from './benchmarks-types.mjs' export const runTest = async (pool, { taskExecutions, workerData }) => { return new Promise((resolve, reject) => { @@ -51,6 +53,7 @@ const jsonIntegerSerialization = n => { } JSON.stringify(o) } + return { ok: 1 } } /** @@ -94,20 +97,21 @@ const readWriteFiles = ( fs.readFileSync(filePath, 'utf8') } fs.rmSync(baseDirectory, { recursive: true }) + return { ok: 1 } } -export const executeWorkerFunction = data => { +export const executeTaskFunction = data => { switch (data.function) { - case WorkerFunctions.jsonIntegerSerialization: + case TaskFunctions.jsonIntegerSerialization: return jsonIntegerSerialization(data.taskSize || 1000) - case WorkerFunctions.fibonacci: + case TaskFunctions.fibonacci: return fibonacci(data.taskSize || 1000) - case WorkerFunctions.factorial: + case TaskFunctions.factorial: return factorial(data.taskSize || 1000) - case WorkerFunctions.readWriteFiles: + case TaskFunctions.readWriteFiles: return readWriteFiles(data.taskSize || 1000) default: - throw new Error('Unknown worker function') + throw new Error('Unknown task function') } } @@ -133,15 +137,15 @@ export const 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 )