modestbench 0.3.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +45 -2
- package/dist/adapters/ava-adapter.cjs +421 -0
- package/dist/adapters/ava-adapter.cjs.map +1 -0
- package/dist/adapters/ava-adapter.d.cts +39 -0
- package/dist/adapters/ava-adapter.d.cts.map +1 -0
- package/dist/adapters/ava-adapter.d.ts +39 -0
- package/dist/adapters/ava-adapter.d.ts.map +1 -0
- package/dist/adapters/ava-adapter.js +384 -0
- package/dist/adapters/ava-adapter.js.map +1 -0
- package/dist/adapters/ava-hooks.cjs +66 -0
- package/dist/adapters/ava-hooks.cjs.map +1 -0
- package/dist/adapters/ava-hooks.d.cts +24 -0
- package/dist/adapters/ava-hooks.d.cts.map +1 -0
- package/dist/adapters/ava-hooks.d.ts +24 -0
- package/dist/adapters/ava-hooks.d.ts.map +1 -0
- package/dist/adapters/ava-hooks.js +61 -0
- package/dist/adapters/ava-hooks.js.map +1 -0
- package/dist/adapters/ava-register.cjs +16 -0
- package/dist/adapters/ava-register.cjs.map +1 -0
- package/dist/adapters/ava-register.d.cts +11 -0
- package/dist/adapters/ava-register.d.cts.map +1 -0
- package/dist/adapters/ava-register.d.ts +11 -0
- package/dist/adapters/ava-register.d.ts.map +1 -0
- package/dist/adapters/ava-register.js +14 -0
- package/dist/adapters/ava-register.js.map +1 -0
- package/dist/adapters/mocha-adapter.cjs +254 -0
- package/dist/adapters/mocha-adapter.cjs.map +1 -0
- package/dist/adapters/mocha-adapter.d.cts +26 -0
- package/dist/adapters/mocha-adapter.d.cts.map +1 -0
- package/dist/adapters/mocha-adapter.d.ts +26 -0
- package/dist/adapters/mocha-adapter.d.ts.map +1 -0
- package/dist/adapters/mocha-adapter.js +217 -0
- package/dist/adapters/mocha-adapter.js.map +1 -0
- package/dist/adapters/node-test-adapter.cjs +335 -0
- package/dist/adapters/node-test-adapter.cjs.map +1 -0
- package/dist/adapters/node-test-adapter.d.cts +41 -0
- package/dist/adapters/node-test-adapter.d.cts.map +1 -0
- package/dist/adapters/node-test-adapter.d.ts +41 -0
- package/dist/adapters/node-test-adapter.d.ts.map +1 -0
- package/dist/adapters/node-test-adapter.js +298 -0
- package/dist/adapters/node-test-adapter.js.map +1 -0
- package/dist/adapters/node-test-hooks.cjs +72 -0
- package/dist/adapters/node-test-hooks.cjs.map +1 -0
- package/dist/adapters/node-test-hooks.d.cts +24 -0
- package/dist/adapters/node-test-hooks.d.cts.map +1 -0
- package/dist/adapters/node-test-hooks.d.ts +24 -0
- package/dist/adapters/node-test-hooks.d.ts.map +1 -0
- package/dist/adapters/node-test-hooks.js +67 -0
- package/dist/adapters/node-test-hooks.js.map +1 -0
- package/dist/adapters/node-test-register.cjs +7 -0
- package/dist/adapters/node-test-register.cjs.map +1 -0
- package/dist/adapters/node-test-register.d.cts +2 -0
- package/dist/adapters/node-test-register.d.cts.map +1 -0
- package/dist/adapters/node-test-register.d.ts +2 -0
- package/dist/adapters/node-test-register.d.ts.map +1 -0
- package/dist/adapters/node-test-register.js +5 -0
- package/dist/adapters/node-test-register.js.map +1 -0
- package/dist/adapters/types.cjs +152 -0
- package/dist/adapters/types.cjs.map +1 -0
- package/dist/adapters/types.d.cts +112 -0
- package/dist/adapters/types.d.cts.map +1 -0
- package/dist/adapters/types.d.ts +112 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +148 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli/commands/init.cjs +21 -17
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +21 -17
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +6 -2
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.js +6 -2
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/test.cjs +392 -0
- package/dist/cli/commands/test.cjs.map +1 -0
- package/dist/cli/commands/test.d.cts +38 -0
- package/dist/cli/commands/test.d.cts.map +1 -0
- package/dist/cli/commands/test.d.ts +38 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +388 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/index.cjs +72 -1
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +73 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/constants.cjs +13 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +12 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +4 -0
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +4 -0
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/tinybench-engine.cjs +163 -131
- package/dist/core/engines/tinybench-engine.cjs.map +1 -1
- package/dist/core/engines/tinybench-engine.d.cts +6 -0
- package/dist/core/engines/tinybench-engine.d.cts.map +1 -1
- package/dist/core/engines/tinybench-engine.d.ts +6 -0
- package/dist/core/engines/tinybench-engine.d.ts.map +1 -1
- package/dist/core/engines/tinybench-engine.js +163 -131
- package/dist/core/engines/tinybench-engine.js.map +1 -1
- package/dist/core/stats-utils.cjs +4 -2
- package/dist/core/stats-utils.cjs.map +1 -1
- package/dist/core/stats-utils.d.cts +1 -1
- package/dist/core/stats-utils.d.cts.map +1 -1
- package/dist/core/stats-utils.d.ts +1 -1
- package/dist/core/stats-utils.d.ts.map +1 -1
- package/dist/core/stats-utils.js +4 -2
- package/dist/core/stats-utils.js.map +1 -1
- package/dist/errors/base.cjs +2 -1
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +2 -1
- package/dist/errors/base.js.map +1 -1
- package/dist/formatters/history/compare.cjs.map +1 -1
- package/dist/formatters/history/compare.d.cts.map +1 -1
- package/dist/formatters/history/compare.d.ts.map +1 -1
- package/dist/formatters/history/compare.js.map +1 -1
- package/dist/formatters/history/list.cjs.map +1 -1
- package/dist/formatters/history/list.d.cts.map +1 -1
- package/dist/formatters/history/list.d.ts.map +1 -1
- package/dist/formatters/history/list.js.map +1 -1
- package/dist/reporters/human.cjs +83 -27
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +1 -0
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +1 -0
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +83 -27
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/simple.cjs +68 -21
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +1 -0
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +1 -0
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +68 -21
- package/dist/reporters/simple.js.map +1 -1
- package/dist/services/config-manager.cjs +1 -1
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.d.cts.map +1 -1
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +2 -2
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs.map +1 -1
- package/dist/services/file-loader.d.cts.map +1 -1
- package/dist/services/file-loader.d.ts.map +1 -1
- package/dist/services/file-loader.js.map +1 -1
- package/package.json +63 -35
- package/src/adapters/ava-adapter.ts +553 -0
- package/src/adapters/ava-hooks.ts +65 -0
- package/src/adapters/ava-register.ts +15 -0
- package/src/adapters/mocha-adapter.ts +284 -0
- package/src/adapters/node-test-adapter.ts +391 -0
- package/src/adapters/node-test-hooks.ts +71 -0
- package/src/adapters/node-test-register.ts +5 -0
- package/src/adapters/types.ts +281 -0
- package/src/cli/commands/init.ts +25 -17
- package/src/cli/commands/run.ts +9 -2
- package/src/cli/commands/test.ts +546 -0
- package/src/cli/index.ts +81 -1
- package/src/constants.ts +15 -0
- package/src/core/engine.ts +5 -0
- package/src/core/engines/tinybench-engine.ts +213 -141
- package/src/core/stats-utils.ts +5 -3
- package/src/errors/base.ts +3 -2
- package/src/formatters/history/compare.ts +1 -3
- package/src/formatters/history/list.ts +1 -3
- package/src/reporters/human.ts +107 -36
- package/src/reporters/simple.ts +81 -22
- package/src/services/config-manager.ts +4 -5
- package/src/services/file-loader.ts +2 -3
|
@@ -56,6 +56,7 @@ class TinybenchEngine extends engine_js_1.ModestBenchEngine {
|
|
|
56
56
|
}
|
|
57
57
|
const bench = new tinybench_1.Bench({
|
|
58
58
|
iterations: effectiveIterations,
|
|
59
|
+
retainSamples: true, // Required in tinybench v6+ to access samples for custom stats
|
|
59
60
|
time: effectiveTime,
|
|
60
61
|
warmupIterations: config.warmup,
|
|
61
62
|
warmupTime: config.warmup > 0 ? Math.min(config.warmup || 0, 500) : 0,
|
|
@@ -97,14 +98,12 @@ class TinybenchEngine extends engine_js_1.ModestBenchEngine {
|
|
|
97
98
|
}
|
|
98
99
|
const minimalBench = new tinybench_1.Bench({
|
|
99
100
|
iterations: config.iterations,
|
|
101
|
+
retainSamples: true,
|
|
100
102
|
time: retryTime,
|
|
101
103
|
warmupIterations: config.warmup,
|
|
102
104
|
warmupTime: 0,
|
|
103
105
|
});
|
|
104
|
-
minimalBench.add(taskName, taskData.fn,
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
106
|
-
// @ts-ignore - Pending https://github.com/tinylibs/tinybench/pull/364
|
|
107
|
-
signal ? { signal } : undefined);
|
|
106
|
+
minimalBench.add(taskName, taskData.fn, signal ? { signal } : undefined);
|
|
108
107
|
try {
|
|
109
108
|
await minimalBench.run();
|
|
110
109
|
}
|
|
@@ -113,31 +112,19 @@ class TinybenchEngine extends engine_js_1.ModestBenchEngine {
|
|
|
113
112
|
throw new index_js_1.OperationTooFastError(`Benchmark operation is too fast to measure reliably (execution time < 1ns)`);
|
|
114
113
|
}
|
|
115
114
|
const minimalResults = minimalBench.results[0];
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
// Handle discriminated union: check state for error/completion
|
|
116
|
+
if (!minimalResults || minimalResults.state === 'errored') {
|
|
117
|
+
const errorMsg = minimalResults?.state === 'errored'
|
|
118
|
+
? minimalResults.error.message
|
|
119
|
+
: 'unknown error';
|
|
120
|
+
throw new index_js_1.OperationTooFastError(`Benchmark too fast to measure reliably: ${errorMsg}`);
|
|
118
121
|
}
|
|
119
|
-
//
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
cv: minimalStats.cv,
|
|
126
|
-
iterations: minimalCleanedSamples.length,
|
|
127
|
-
marginOfError: minimalStats.marginOfError,
|
|
128
|
-
max: minimalStats.max,
|
|
129
|
-
mean: minimalStats.mean,
|
|
130
|
-
metadata: taskData.metadata ?? {},
|
|
131
|
-
min: minimalStats.min,
|
|
132
|
-
name: taskName,
|
|
133
|
-
opsPerSecond: minimalResults.throughput.mean || 0,
|
|
134
|
-
p95: minimalStats.p95,
|
|
135
|
-
p99: minimalStats.p99,
|
|
136
|
-
stdDev: minimalStats.stdDev,
|
|
137
|
-
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
138
|
-
variance: minimalStats.variance,
|
|
139
|
-
};
|
|
140
|
-
return taskResult;
|
|
122
|
+
// Extract stats from completed result
|
|
123
|
+
const taskResultFromMinimal = this.extractTaskResultFromTinybenchResult(taskName, taskData, minimalResults);
|
|
124
|
+
if (taskResultFromMinimal) {
|
|
125
|
+
return taskResultFromMinimal;
|
|
126
|
+
}
|
|
127
|
+
throw new index_js_1.OperationTooFastError(`Benchmark too fast to measure reliably: no statistics available`);
|
|
141
128
|
}
|
|
142
129
|
throw error;
|
|
143
130
|
}
|
|
@@ -150,116 +137,108 @@ class TinybenchEngine extends engine_js_1.ModestBenchEngine {
|
|
|
150
137
|
if (!results) {
|
|
151
138
|
throw new index_js_1.BenchmarkExecutionError('No benchmark results returned');
|
|
152
139
|
}
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
? results.error.message
|
|
180
|
-
: String(results.error);
|
|
181
|
-
// Handle array length errors for extremely fast operations
|
|
182
|
-
if (errorMessage.includes('Invalid array length')) {
|
|
183
|
-
// Retry with minimal time for extremely fast operations
|
|
184
|
-
// Use same limiting logic but with minimal time for fast ops
|
|
185
|
-
let retryTime;
|
|
186
|
-
switch (config.limitBy) {
|
|
187
|
-
case 'all':
|
|
188
|
-
case 'any':
|
|
189
|
-
retryTime = 10;
|
|
190
|
-
break;
|
|
191
|
-
case 'iterations':
|
|
192
|
-
retryTime = 1;
|
|
193
|
-
break;
|
|
194
|
-
case 'time':
|
|
195
|
-
retryTime = 10;
|
|
196
|
-
break;
|
|
197
|
-
default:
|
|
198
|
-
retryTime = 1;
|
|
199
|
-
}
|
|
200
|
-
const minimalBench = new tinybench_1.Bench({
|
|
201
|
-
iterations: config.iterations,
|
|
202
|
-
time: retryTime,
|
|
203
|
-
warmupIterations: config.warmup,
|
|
204
|
-
warmupTime: 0,
|
|
205
|
-
});
|
|
206
|
-
minimalBench.add(taskName, taskData.fn,
|
|
207
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
208
|
-
// @ts-ignore - Pending https://github.com/tinylibs/tinybench/pull/364
|
|
209
|
-
signal ? { signal } : undefined);
|
|
210
|
-
await minimalBench.run();
|
|
211
|
-
const minimalResults = minimalBench.results[0];
|
|
212
|
-
if (!minimalResults || minimalResults.error) {
|
|
213
|
-
// If retry also fails, just accept it failed
|
|
214
|
-
throw new index_js_1.OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
140
|
+
// Handle discriminated union based on state
|
|
141
|
+
switch (results.state) {
|
|
142
|
+
case 'aborted':
|
|
143
|
+
// Task was aborted via signal - return minimal valid result marked as aborted
|
|
144
|
+
return {
|
|
145
|
+
aborted: true,
|
|
146
|
+
cv: 0,
|
|
147
|
+
iterations: 0,
|
|
148
|
+
marginOfError: 0,
|
|
149
|
+
max: 0,
|
|
150
|
+
mean: 0,
|
|
151
|
+
metadata: taskData.metadata ?? {},
|
|
152
|
+
min: 0,
|
|
153
|
+
name: taskName,
|
|
154
|
+
opsPerSecond: 0,
|
|
155
|
+
p95: 0,
|
|
156
|
+
p99: 0,
|
|
157
|
+
stdDev: 0,
|
|
158
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
159
|
+
variance: 0,
|
|
160
|
+
};
|
|
161
|
+
case 'aborted-with-statistics': {
|
|
162
|
+
// Aborted but has partial stats - use them
|
|
163
|
+
const taskResultFromAborted = this.extractTaskResultFromTinybenchResult(taskName, taskData, results);
|
|
164
|
+
if (taskResultFromAborted) {
|
|
165
|
+
return { ...taskResultFromAborted, aborted: true };
|
|
215
166
|
}
|
|
216
|
-
//
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
marginOfError: minimalStats2.marginOfError,
|
|
225
|
-
max: minimalStats2.max,
|
|
226
|
-
mean: minimalStats2.mean,
|
|
167
|
+
// Fall through to return minimal aborted result
|
|
168
|
+
return {
|
|
169
|
+
aborted: true,
|
|
170
|
+
cv: 0,
|
|
171
|
+
iterations: 0,
|
|
172
|
+
marginOfError: 0,
|
|
173
|
+
max: 0,
|
|
174
|
+
mean: 0,
|
|
227
175
|
metadata: taskData.metadata ?? {},
|
|
228
|
-
min:
|
|
176
|
+
min: 0,
|
|
229
177
|
name: taskName,
|
|
230
|
-
opsPerSecond:
|
|
231
|
-
p95:
|
|
232
|
-
p99:
|
|
233
|
-
stdDev:
|
|
178
|
+
opsPerSecond: 0,
|
|
179
|
+
p95: 0,
|
|
180
|
+
p99: 0,
|
|
181
|
+
stdDev: 0,
|
|
234
182
|
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
235
|
-
variance:
|
|
183
|
+
variance: 0,
|
|
236
184
|
};
|
|
237
|
-
return taskResult;
|
|
238
185
|
}
|
|
239
|
-
|
|
186
|
+
case 'errored': {
|
|
187
|
+
const errorMessage = results.error.message;
|
|
188
|
+
// Handle array length errors for extremely fast operations
|
|
189
|
+
if (errorMessage.includes('Invalid array length')) {
|
|
190
|
+
// Retry with minimal time for extremely fast operations
|
|
191
|
+
let retryTime;
|
|
192
|
+
switch (config.limitBy) {
|
|
193
|
+
case 'all':
|
|
194
|
+
case 'any':
|
|
195
|
+
retryTime = 10;
|
|
196
|
+
break;
|
|
197
|
+
case 'iterations':
|
|
198
|
+
retryTime = 1;
|
|
199
|
+
break;
|
|
200
|
+
case 'time':
|
|
201
|
+
retryTime = 10;
|
|
202
|
+
break;
|
|
203
|
+
default:
|
|
204
|
+
retryTime = 1;
|
|
205
|
+
}
|
|
206
|
+
const minimalBench = new tinybench_1.Bench({
|
|
207
|
+
iterations: config.iterations,
|
|
208
|
+
retainSamples: true,
|
|
209
|
+
time: retryTime,
|
|
210
|
+
warmupIterations: config.warmup,
|
|
211
|
+
warmupTime: 0,
|
|
212
|
+
});
|
|
213
|
+
minimalBench.add(taskName, taskData.fn, signal ? { signal } : undefined);
|
|
214
|
+
await minimalBench.run();
|
|
215
|
+
const minimalResults = minimalBench.results[0];
|
|
216
|
+
if (!minimalResults || minimalResults.state === 'errored') {
|
|
217
|
+
throw new index_js_1.OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
218
|
+
}
|
|
219
|
+
const retryTaskResult = this.extractTaskResultFromTinybenchResult(taskName, taskData, minimalResults);
|
|
220
|
+
if (retryTaskResult) {
|
|
221
|
+
return retryTaskResult;
|
|
222
|
+
}
|
|
223
|
+
throw new index_js_1.OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
224
|
+
}
|
|
225
|
+
throw results.error;
|
|
226
|
+
}
|
|
227
|
+
case 'completed': {
|
|
228
|
+
// Normal completion - extract full stats
|
|
229
|
+
const taskResultFromCompleted = this.extractTaskResultFromTinybenchResult(taskName, taskData, results);
|
|
230
|
+
if (taskResultFromCompleted) {
|
|
231
|
+
return taskResultFromCompleted;
|
|
232
|
+
}
|
|
233
|
+
throw new index_js_1.BenchmarkExecutionError('Completed benchmark but no statistics available');
|
|
234
|
+
}
|
|
235
|
+
case 'not-started':
|
|
236
|
+
case 'started':
|
|
237
|
+
throw new index_js_1.BenchmarkExecutionError(`Unexpected benchmark state: ${results.state}`);
|
|
238
|
+
default:
|
|
239
|
+
// Exhaustiveness check
|
|
240
|
+
throw new index_js_1.BenchmarkExecutionError(`Unknown benchmark state: ${results.state}`);
|
|
240
241
|
}
|
|
241
|
-
// Apply IQR outlier removal to raw samples
|
|
242
|
-
const rawSamples = results.latency.samples || [];
|
|
243
|
-
const samplesInNs = rawSamples.map((s) => s * 1e6); // Convert ms to ns
|
|
244
|
-
const cleanedSamples = (0, stats_utils_js_1.removeOutliersIQR)(samplesInNs);
|
|
245
|
-
const stats = (0, stats_utils_js_1.calculateStatistics)(cleanedSamples);
|
|
246
|
-
const taskResult = {
|
|
247
|
-
cv: stats.cv,
|
|
248
|
-
iterations: cleanedSamples.length,
|
|
249
|
-
marginOfError: stats.marginOfError,
|
|
250
|
-
max: stats.max,
|
|
251
|
-
mean: stats.mean,
|
|
252
|
-
metadata: taskData.metadata ?? {},
|
|
253
|
-
min: stats.min,
|
|
254
|
-
name: taskName,
|
|
255
|
-
opsPerSecond: results.throughput.mean || 0, // Keep tinybench's ops/sec
|
|
256
|
-
p95: stats.p95,
|
|
257
|
-
p99: stats.p99,
|
|
258
|
-
stdDev: stats.stdDev,
|
|
259
|
-
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
260
|
-
variance: stats.variance,
|
|
261
|
-
};
|
|
262
|
-
return taskResult;
|
|
263
242
|
}
|
|
264
243
|
catch (error) {
|
|
265
244
|
const executionError = error instanceof Error ? error : new Error(String(error));
|
|
@@ -283,6 +262,59 @@ class TinybenchEngine extends engine_js_1.ModestBenchEngine {
|
|
|
283
262
|
return errorResult;
|
|
284
263
|
}
|
|
285
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Extract TaskResult from a tinybench result that has statistics
|
|
267
|
+
*
|
|
268
|
+
* Handles the discriminated union types from tinybench v6+
|
|
269
|
+
*/
|
|
270
|
+
extractTaskResultFromTinybenchResult(taskName, taskData, result) {
|
|
271
|
+
// Only states with statistics: 'completed' and 'aborted-with-statistics'
|
|
272
|
+
if (result.state !== 'completed' &&
|
|
273
|
+
result.state !== 'aborted-with-statistics') {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
// Apply IQR outlier removal to raw samples
|
|
277
|
+
// Note: samples may be undefined if retainSamples wasn't enabled
|
|
278
|
+
const rawSamples = result.latency.samples ?? [];
|
|
279
|
+
if (rawSamples.length === 0) {
|
|
280
|
+
// Fall back to using tinybench's calculated stats directly
|
|
281
|
+
return {
|
|
282
|
+
cv: result.latency.rme, // Use relative margin of error as CV approximation
|
|
283
|
+
iterations: result.latency.samplesCount,
|
|
284
|
+
marginOfError: result.latency.rme, // rme is already a percentage
|
|
285
|
+
max: result.latency.max,
|
|
286
|
+
mean: result.latency.mean,
|
|
287
|
+
metadata: taskData.metadata ?? {},
|
|
288
|
+
min: result.latency.min,
|
|
289
|
+
name: taskName,
|
|
290
|
+
opsPerSecond: result.throughput.mean || 0,
|
|
291
|
+
p95: result.latency.p99, // tinybench v6 doesn't have p95, use p99
|
|
292
|
+
p99: result.latency.p99,
|
|
293
|
+
stdDev: result.latency.sd,
|
|
294
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
295
|
+
variance: result.latency.variance,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const samplesInNs = rawSamples.map((s) => s * 1e6); // Convert ms to ns
|
|
299
|
+
const cleanedSamples = (0, stats_utils_js_1.removeOutliersIQR)(samplesInNs);
|
|
300
|
+
const stats = (0, stats_utils_js_1.calculateStatistics)(cleanedSamples);
|
|
301
|
+
return {
|
|
302
|
+
cv: stats.cv,
|
|
303
|
+
iterations: cleanedSamples.length,
|
|
304
|
+
marginOfError: stats.marginOfError,
|
|
305
|
+
max: stats.max,
|
|
306
|
+
mean: stats.mean,
|
|
307
|
+
metadata: taskData.metadata ?? {},
|
|
308
|
+
min: stats.min,
|
|
309
|
+
name: taskName,
|
|
310
|
+
opsPerSecond: result.throughput.mean || 0,
|
|
311
|
+
p95: stats.p95,
|
|
312
|
+
p99: stats.p99,
|
|
313
|
+
stdDev: stats.stdDev,
|
|
314
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
315
|
+
variance: stats.variance,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
286
318
|
}
|
|
287
319
|
exports.TinybenchEngine = TinybenchEngine;
|
|
288
320
|
//# sourceMappingURL=tinybench-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tinybench-engine.js","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"tinybench-engine.js","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,11 @@ export declare class TinybenchEngine extends ModestBenchEngine {
|
|
|
14
14
|
* Execute a single benchmark task using tinybench
|
|
15
15
|
*/
|
|
16
16
|
protected executeBenchmarkTask(taskName: string, taskData: BenchmarkTask, config: ModestBenchConfig, _reporters?: Reporter[], signal?: AbortSignal): Promise<TaskResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Extract TaskResult from a tinybench result that has statistics
|
|
19
|
+
*
|
|
20
|
+
* Handles the discriminated union types from tinybench v6+
|
|
21
|
+
*/
|
|
22
|
+
private extractTaskResultFromTinybenchResult;
|
|
17
23
|
}
|
|
18
24
|
//# sourceMappingURL=tinybench-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tinybench-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,8BAA6B;AAO9B,OAAO,EAAE,iBAAiB,EAAE,sBAAqB;AAGjD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;cACa,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,GAAE,QAAQ,EAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tinybench-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,8BAA6B;AAO9B,OAAO,EAAE,iBAAiB,EAAE,sBAAqB;AAGjD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;cACa,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,GAAE,QAAQ,EAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IA2TtB;;;;OAIG;IACH,OAAO,CAAC,oCAAoC;CAyD7C"}
|
|
@@ -14,5 +14,11 @@ export declare class TinybenchEngine extends ModestBenchEngine {
|
|
|
14
14
|
* Execute a single benchmark task using tinybench
|
|
15
15
|
*/
|
|
16
16
|
protected executeBenchmarkTask(taskName: string, taskData: BenchmarkTask, config: ModestBenchConfig, _reporters?: Reporter[], signal?: AbortSignal): Promise<TaskResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Extract TaskResult from a tinybench result that has statistics
|
|
19
|
+
*
|
|
20
|
+
* Handles the discriminated union types from tinybench v6+
|
|
21
|
+
*/
|
|
22
|
+
private extractTaskResultFromTinybenchResult;
|
|
17
23
|
}
|
|
18
24
|
//# sourceMappingURL=tinybench-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tinybench-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,6BAA6B;AAO9B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB;AAGjD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;cACa,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,GAAE,QAAQ,EAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tinybench-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,6BAA6B;AAO9B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB;AAGjD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;cACa,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,GAAE,QAAQ,EAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IA2TtB;;;;OAIG;IACH,OAAO,CAAC,oCAAoC;CAyD7C"}
|