-import type { WorkerChoiceStrategyOptions } from './pools/selection-strategies/selection-strategies-types'
+import os from 'node:os'
+import type {
+ MeasurementStatisticsRequirements,
+ WorkerChoiceStrategyOptions
+} from './pools/selection-strategies/selection-strategies-types'
/**
* An intentional empty function.
*/
export const DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS: WorkerChoiceStrategyOptions =
{
- medRunTime: false
+ runTime: { median: false },
+ waitTime: { median: false },
+ elu: { median: false }
}
+/**
+ * Default measurement statistics requirements.
+ */
+export const DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS: MeasurementStatisticsRequirements =
+ {
+ aggregate: false,
+ average: false,
+ median: false
+ }
+
+/**
+ * Safe helper to get the host OS optimized maximum pool size.
+ */
+export const availableParallelism = (): number => {
+ let availableParallelism = 1
+ try {
+ availableParallelism = os.availableParallelism()
+ } catch {
+ const cpus = os.cpus()
+ if (Array.isArray(cpus) && cpus.length > 0) {
+ availableParallelism = cpus.length
+ }
+ }
+ return availableParallelism
+}
+
/**
* Compute the median of the given data set.
*