import { add, complete, cycle, save, suite } from 'benny'
import {
+ Measurements,
+ PoolTypes,
WorkerChoiceStrategies,
+ WorkerTypes,
availableParallelism
} from '../../lib/index.mjs'
-import {
- PoolTypes,
- WorkerFunctions
- // WorkerTypes
-} from '../benchmarks-types.mjs'
+import { TaskFunctions } from '../benchmarks-types.mjs'
import { buildPool, runTest } from '../benchmarks-utils.mjs'
-const WorkerTypes = Object.freeze({
- thread: 'thread'
-})
-
const poolSize = availableParallelism()
const pools = []
for (const poolType of Object.values(PoolTypes)) {
for (const workerType of Object.values(WorkerTypes)) {
+ if (workerType === WorkerTypes.cluster) {
+ continue
+ }
for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) {
- for (const tasksQueue of [false, true]) {
- const pool = buildPool(
- workerType,
- poolType,
- poolSize,
- tasksQueue
- ? {
- ...{
- workerChoiceStrategy
+ for (const enableTasksQueue of [false, true]) {
+ if (workerChoiceStrategy === WorkerChoiceStrategies.FAIR_SHARE) {
+ for (const measurement of [Measurements.runTime, Measurements.elu]) {
+ pools.push([
+ `${poolType}|${workerType}|${workerChoiceStrategy}|tasks queue:${enableTasksQueue}|measurement:${measurement}`,
+ buildPool(workerType, poolType, poolSize, {
+ workerChoiceStrategy,
+ workerChoiceStrategyOptions: {
+ measurement
},
- ...{ enableTasksQueue: true }
- }
- : {
- workerChoiceStrategy
- }
- )
- pools.push([
- `${poolType}|${workerType}|${workerChoiceStrategy}|tasks queue:${tasksQueue}`,
- pool
- ])
+ enableTasksQueue
+ })
+ ])
+ }
+ } else {
+ pools.push([
+ `${poolType}|${workerType}|${workerChoiceStrategy}|tasks queue:${enableTasksQueue}`,
+ buildPool(workerType, poolType, poolSize, {
+ workerChoiceStrategy,
+ enableTasksQueue
+ })
+ ])
+ }
}
}
}
const taskExecutions = 1
const workerData = {
- function: WorkerFunctions.jsonIntegerSerialization,
+ function: TaskFunctions.jsonIntegerSerialization,
taskSize: 1000
}
-const addPools = pools =>
+const addPools = (pools) =>
pools.map(([name, pool]) => {
return add(name, async () => {
await runTest(pool, {
// eslint-disable-next-line n/no-process-exit
return process.exit()
})
- .catch(err => console.error(err))
+ .catch((err) => console.error(err))