modestbench 0.2.0 → 0.3.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 +27 -0
- package/README.md +131 -34
- package/dist/cli/commands/analyze.cjs +60 -0
- package/dist/cli/commands/analyze.cjs.map +1 -0
- package/dist/cli/commands/analyze.d.cts +35 -0
- package/dist/cli/commands/analyze.d.cts.map +1 -0
- package/dist/cli/commands/analyze.d.ts +35 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +56 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/baseline.cjs +404 -0
- package/dist/cli/commands/baseline.cjs.map +1 -0
- package/dist/cli/commands/baseline.d.cts +72 -0
- package/dist/cli/commands/baseline.d.cts.map +1 -0
- package/dist/cli/commands/baseline.d.ts +72 -0
- package/dist/cli/commands/baseline.d.ts.map +1 -0
- package/dist/cli/commands/baseline.js +396 -0
- package/dist/cli/commands/baseline.js.map +1 -0
- package/dist/cli/commands/history.d.cts +1 -1
- package/dist/cli/commands/history.d.cts.map +1 -1
- package/dist/cli/commands/history.d.ts +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/init.cjs +99 -166
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts +4 -4
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts +4 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +99 -166
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +146 -127
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +16 -3
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +16 -3
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +145 -93
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +583 -394
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +4 -16
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +4 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +575 -386
- package/dist/cli/index.js.map +1 -1
- package/dist/config/budget-schema.cjs +172 -0
- package/dist/config/budget-schema.cjs.map +1 -0
- package/dist/config/budget-schema.d.cts +59 -0
- package/dist/config/budget-schema.d.cts.map +1 -0
- package/dist/config/budget-schema.d.ts +59 -0
- package/dist/config/budget-schema.d.ts.map +1 -0
- package/dist/config/budget-schema.js +166 -0
- package/dist/config/budget-schema.js.map +1 -0
- package/dist/config/schema.cjs +182 -2
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +122 -3
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +122 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +180 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.cjs +45 -2
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +41 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +44 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +114 -23
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts +7 -7
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts +7 -7
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +115 -24
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/accurate-engine.cjs +171 -36
- package/dist/core/engines/accurate-engine.cjs.map +1 -1
- package/dist/core/engines/accurate-engine.d.cts +5 -0
- package/dist/core/engines/accurate-engine.d.cts.map +1 -1
- package/dist/core/engines/accurate-engine.d.ts +5 -0
- package/dist/core/engines/accurate-engine.d.ts.map +1 -1
- package/dist/core/engines/accurate-engine.js +171 -36
- package/dist/core/engines/accurate-engine.js.map +1 -1
- package/dist/core/engines/tinybench-engine.cjs +3 -2
- package/dist/core/engines/tinybench-engine.cjs.map +1 -1
- package/dist/core/engines/tinybench-engine.d.cts.map +1 -1
- package/dist/core/engines/tinybench-engine.d.ts.map +1 -1
- package/dist/core/engines/tinybench-engine.js +3 -2
- package/dist/core/engines/tinybench-engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +8 -1
- package/dist/core/output-path-resolver.cjs.map +1 -1
- package/dist/core/output-path-resolver.d.cts.map +1 -1
- package/dist/core/output-path-resolver.d.ts.map +1 -1
- package/dist/core/output-path-resolver.js +9 -2
- package/dist/core/output-path-resolver.js.map +1 -1
- package/dist/errors/base.cjs +12 -3
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts +7 -0
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts +7 -0
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +10 -2
- package/dist/errors/base.js.map +1 -1
- package/dist/errors/budget.cjs +37 -0
- package/dist/errors/budget.cjs.map +1 -0
- package/dist/errors/budget.d.cts +31 -0
- package/dist/errors/budget.d.cts.map +1 -0
- package/dist/errors/budget.d.ts +31 -0
- package/dist/errors/budget.d.ts.map +1 -0
- package/dist/errors/budget.js +33 -0
- package/dist/errors/budget.js.map +1 -0
- package/dist/errors/index.cjs +4 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -0
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/index.cjs +13 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/reporters/csv.cjs +37 -17
- package/dist/reporters/csv.cjs.map +1 -1
- package/dist/reporters/csv.d.cts +3 -6
- package/dist/reporters/csv.d.cts.map +1 -1
- package/dist/reporters/csv.d.ts +3 -6
- package/dist/reporters/csv.d.ts.map +1 -1
- package/dist/reporters/csv.js +37 -17
- package/dist/reporters/csv.js.map +1 -1
- package/dist/reporters/human.cjs +290 -67
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +25 -13
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +25 -13
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +290 -67
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +23 -48
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.d.cts +2 -28
- package/dist/reporters/json.d.cts.map +1 -1
- package/dist/reporters/json.d.ts +2 -28
- package/dist/reporters/json.d.ts.map +1 -1
- package/dist/reporters/json.js +25 -50
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/profile-human.cjs +154 -0
- package/dist/reporters/profile-human.cjs.map +1 -0
- package/dist/reporters/profile-human.d.cts +44 -0
- package/dist/reporters/profile-human.d.cts.map +1 -0
- package/dist/reporters/profile-human.d.ts +44 -0
- package/dist/reporters/profile-human.d.ts.map +1 -0
- package/dist/reporters/profile-human.js +147 -0
- package/dist/reporters/profile-human.js.map +1 -0
- package/dist/reporters/simple.cjs +67 -45
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +14 -14
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +14 -14
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +67 -45
- package/dist/reporters/simple.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +153 -0
- package/dist/services/baseline-storage.cjs +151 -0
- package/dist/services/baseline-storage.cjs.map +1 -0
- package/dist/services/baseline-storage.d.cts +55 -0
- package/dist/services/baseline-storage.d.cts.map +1 -0
- package/dist/services/baseline-storage.d.ts +55 -0
- package/dist/services/baseline-storage.d.ts.map +1 -0
- package/dist/services/baseline-storage.js +147 -0
- package/dist/services/baseline-storage.js.map +1 -0
- package/dist/services/budget-evaluator.cjs +146 -0
- package/dist/services/budget-evaluator.cjs.map +1 -0
- package/dist/services/budget-evaluator.d.cts +29 -0
- package/dist/services/budget-evaluator.d.cts.map +1 -0
- package/dist/services/budget-evaluator.d.ts +29 -0
- package/dist/services/budget-evaluator.d.ts.map +1 -0
- package/dist/services/budget-evaluator.js +142 -0
- package/dist/services/budget-evaluator.js.map +1 -0
- package/dist/services/config-manager.cjs +24 -10
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.d.cts +6 -1
- package/dist/services/config-manager.d.cts.map +1 -1
- package/dist/services/config-manager.d.ts +6 -1
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +24 -10
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs +3 -6
- 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 +3 -6
- package/dist/services/file-loader.js.map +1 -1
- package/dist/services/profiler/profile-filter.cjs +116 -0
- package/dist/services/profiler/profile-filter.cjs.map +1 -0
- package/dist/services/profiler/profile-filter.d.cts +20 -0
- package/dist/services/profiler/profile-filter.d.cts.map +1 -0
- package/dist/services/profiler/profile-filter.d.ts +20 -0
- package/dist/services/profiler/profile-filter.d.ts.map +1 -0
- package/dist/services/profiler/profile-filter.js +112 -0
- package/dist/services/profiler/profile-filter.js.map +1 -0
- package/dist/services/profiler/profile-parser.cjs +139 -0
- package/dist/services/profiler/profile-parser.cjs.map +1 -0
- package/dist/services/profiler/profile-parser.d.cts +18 -0
- package/dist/services/profiler/profile-parser.d.cts.map +1 -0
- package/dist/services/profiler/profile-parser.d.ts +18 -0
- package/dist/services/profiler/profile-parser.d.ts.map +1 -0
- package/dist/services/profiler/profile-parser.js +132 -0
- package/dist/services/profiler/profile-parser.js.map +1 -0
- package/dist/services/profiler/profile-runner.cjs +90 -0
- package/dist/services/profiler/profile-runner.cjs.map +1 -0
- package/dist/services/profiler/profile-runner.d.cts +29 -0
- package/dist/services/profiler/profile-runner.d.cts.map +1 -0
- package/dist/services/profiler/profile-runner.d.ts +29 -0
- package/dist/services/profiler/profile-runner.d.ts.map +1 -0
- package/dist/services/profiler/profile-runner.js +86 -0
- package/dist/services/profiler/profile-runner.js.map +1 -0
- package/dist/services/progress-manager.cjs +10 -2
- package/dist/services/progress-manager.cjs.map +1 -1
- package/dist/services/progress-manager.d.cts +2 -0
- package/dist/services/progress-manager.d.cts.map +1 -1
- package/dist/services/progress-manager.d.ts +2 -0
- package/dist/services/progress-manager.d.ts.map +1 -1
- package/dist/services/progress-manager.js +10 -2
- package/dist/services/progress-manager.js.map +1 -1
- package/dist/services/reporter-registry.cjs +18 -24
- package/dist/services/reporter-registry.cjs.map +1 -1
- package/dist/services/reporter-registry.d.cts +18 -40
- package/dist/services/reporter-registry.d.cts.map +1 -1
- package/dist/services/reporter-registry.d.ts +18 -40
- package/dist/services/reporter-registry.d.ts.map +1 -1
- package/dist/services/reporter-registry.js +18 -24
- package/dist/services/reporter-registry.js.map +1 -1
- package/dist/types/budgets.cjs +8 -0
- package/dist/types/budgets.cjs.map +1 -0
- package/dist/types/budgets.d.cts +149 -0
- package/dist/types/budgets.d.cts.map +1 -0
- package/dist/types/budgets.d.ts +149 -0
- package/dist/types/budgets.d.ts.map +1 -0
- package/dist/types/budgets.js +7 -0
- package/dist/types/budgets.js.map +1 -0
- package/dist/types/cli.cjs +2 -11
- package/dist/types/cli.cjs.map +1 -1
- package/dist/types/cli.d.cts +3 -227
- package/dist/types/cli.d.cts.map +1 -1
- package/dist/types/cli.d.ts +3 -227
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js +2 -11
- package/dist/types/cli.js.map +1 -1
- package/dist/types/core.cjs +6 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +15 -2
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +15 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +2 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.cjs +5 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interfaces.d.cts +19 -8
- package/dist/types/interfaces.d.cts.map +1 -1
- package/dist/types/interfaces.d.ts +19 -8
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/profiler.cjs +11 -0
- package/dist/types/profiler.cjs.map +1 -0
- package/dist/types/profiler.d.cts +102 -0
- package/dist/types/profiler.d.cts.map +1 -0
- package/dist/types/profiler.d.ts +102 -0
- package/dist/types/profiler.d.ts.map +1 -0
- package/dist/types/profiler.js +10 -0
- package/dist/types/profiler.js.map +1 -0
- package/dist/types/utility.cjs.map +1 -1
- package/dist/types/utility.d.cts +0 -8
- package/dist/types/utility.d.cts.map +1 -1
- package/dist/types/utility.d.ts +0 -8
- package/dist/types/utility.d.ts.map +1 -1
- package/dist/types/utility.js.map +1 -1
- package/dist/utils/identifiers.cjs +32 -0
- package/dist/utils/identifiers.cjs.map +1 -0
- package/dist/utils/identifiers.d.cts +32 -0
- package/dist/utils/identifiers.d.cts.map +1 -0
- package/dist/utils/identifiers.d.ts +32 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +27 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/package.cjs +40 -0
- package/dist/utils/package.cjs.map +1 -0
- package/dist/utils/package.d.cts +15 -0
- package/dist/utils/package.d.cts.map +1 -0
- package/dist/utils/package.d.ts +15 -0
- package/dist/utils/package.d.ts.map +1 -0
- package/dist/utils/package.js +33 -0
- package/dist/utils/package.js.map +1 -0
- package/dist/utils/type-guards.cjs +48 -0
- package/dist/utils/type-guards.cjs.map +1 -0
- package/dist/utils/type-guards.d.cts +22 -0
- package/dist/utils/type-guards.d.cts.map +1 -0
- package/dist/utils/type-guards.d.ts +22 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +43 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +18 -19
- package/src/cli/commands/analyze.ts +101 -0
- package/src/cli/commands/baseline.ts +577 -0
- package/src/cli/commands/history.ts +1 -1
- package/src/cli/commands/init.ts +116 -194
- package/src/cli/commands/run.ts +183 -113
- package/src/cli/index.ts +425 -183
- package/src/config/budget-schema.ts +189 -0
- package/src/config/schema.ts +260 -1
- package/src/constants.ts +53 -1
- package/src/core/engine.ts +169 -22
- package/src/core/engines/accurate-engine.ts +195 -44
- package/src/core/engines/tinybench-engine.ts +3 -2
- package/src/core/output-path-resolver.ts +10 -2
- package/src/errors/base.ts +11 -2
- package/src/errors/budget.ts +38 -0
- package/src/errors/index.ts +3 -0
- package/src/index.ts +9 -0
- package/src/reporters/csv.ts +54 -25
- package/src/reporters/human.ts +434 -115
- package/src/reporters/json.ts +26 -71
- package/src/reporters/profile-human.ts +210 -0
- package/src/reporters/simple.ts +88 -54
- package/src/services/baseline-storage.ts +199 -0
- package/src/services/budget-evaluator.ts +182 -0
- package/src/services/config-manager.ts +24 -9
- package/src/services/file-loader.ts +3 -6
- package/src/services/profiler/profile-filter.ts +147 -0
- package/src/services/profiler/profile-parser.ts +194 -0
- package/src/services/profiler/profile-runner.ts +121 -0
- package/src/services/progress-manager.ts +12 -2
- package/src/services/reporter-registry.ts +46 -81
- package/src/types/budgets.ts +180 -0
- package/src/types/cli.ts +5 -238
- package/src/types/core.ts +52 -10
- package/src/types/index.ts +5 -0
- package/src/types/interfaces.ts +24 -6
- package/src/types/profiler.ts +135 -0
- package/src/types/utility.ts +0 -10
- package/src/utils/identifiers.ts +58 -0
- package/src/utils/package.ts +35 -0
- package/src/utils/type-guards.ts +51 -0
|
@@ -33,6 +33,11 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
33
33
|
* and excessive memory usage
|
|
34
34
|
*/
|
|
35
35
|
static MAX_ITERATIONS_PER_ROUND = 10000;
|
|
36
|
+
/**
|
|
37
|
+
* Maximum iterations per round for async functions (much lower due to
|
|
38
|
+
* sequential await overhead)
|
|
39
|
+
*/
|
|
40
|
+
static MAX_ITERATIONS_PER_ROUND_ASYNC = 100;
|
|
36
41
|
hasCheckedNativeSyntax = false;
|
|
37
42
|
nativeSyntaxErrorShown = false;
|
|
38
43
|
nativeSyntaxSupported = false;
|
|
@@ -46,24 +51,48 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
46
51
|
if (!taskData.fn || typeof taskData.fn !== 'function') {
|
|
47
52
|
throw new index_js_1.StructureValidationError('Benchmark task must have a "fn" function property');
|
|
48
53
|
}
|
|
54
|
+
// Detect if function is async by testing it
|
|
55
|
+
const testResult = taskData.fn();
|
|
56
|
+
const isAsync = testResult != null &&
|
|
57
|
+
typeof testResult === 'object' &&
|
|
58
|
+
'then' in testResult &&
|
|
59
|
+
typeof testResult.then === 'function';
|
|
60
|
+
if (isAsync) {
|
|
61
|
+
// Clean up the test promise/thenable
|
|
62
|
+
const thenable = testResult;
|
|
63
|
+
thenable.then(() => {
|
|
64
|
+
/* ignore */
|
|
65
|
+
}, () => {
|
|
66
|
+
/* ignore */
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// For async functions, cap iterations to prevent excessive sequential rounds
|
|
70
|
+
// Even with limitBy: 'iterations', 5000 samples = 5000 rounds of async calls
|
|
71
|
+
// which is impractically slow. Cap at 1000 for reasonable balance.
|
|
72
|
+
const effectiveConfig = isAsync && config.iterations > 1000
|
|
73
|
+
? { ...config, iterations: 1000 }
|
|
74
|
+
: config;
|
|
49
75
|
// Check for V8 native syntax support
|
|
50
76
|
const useOptGuards = this.checkNativeSyntax();
|
|
51
77
|
// Show helpful error if native syntax not available
|
|
52
78
|
if (!useOptGuards && !this.nativeSyntaxErrorShown) {
|
|
53
79
|
if (!config.quiet) {
|
|
54
|
-
|
|
80
|
+
// Get the path to the modestbench executable from process.argv
|
|
81
|
+
const modestbenchPath = process.argv[1] || 'modestbench';
|
|
82
|
+
console.warn('\n⚠️ AccurateEngine recommends --allow-natives-syntax flag for best accuracy.', '\nRunning in fallback mode (reduced accuracy).', '\n\nTo enable V8 optimization guards:', `\n node --allow-natives-syntax ${modestbenchPath}`, '\n');
|
|
55
83
|
}
|
|
56
84
|
this.nativeSyntaxErrorShown = true;
|
|
57
85
|
}
|
|
58
|
-
// Execute benchmark with or without opt guards
|
|
86
|
+
// Execute benchmark with or without opt guards, and with async support
|
|
59
87
|
const rawSamples = useOptGuards
|
|
60
|
-
? await this.executeBenchmarkWithOptGuards(taskData.fn,
|
|
61
|
-
: await this.executeBenchmarkBasic(taskData.fn,
|
|
62
|
-
// Check if aborted
|
|
88
|
+
? await this.executeBenchmarkWithOptGuards(taskData.fn, effectiveConfig, signal, isAsync)
|
|
89
|
+
: await this.executeBenchmarkBasic(taskData.fn, effectiveConfig, signal, isAsync);
|
|
90
|
+
// Check if aborted - return minimal valid result marked as aborted
|
|
91
|
+
// (abort message is shown at run level, not per-task)
|
|
63
92
|
if (signal?.aborted) {
|
|
64
93
|
return {
|
|
94
|
+
aborted: true,
|
|
65
95
|
cv: 0,
|
|
66
|
-
error: new Error('Benchmark aborted by user signal'),
|
|
67
96
|
iterations: rawSamples.length,
|
|
68
97
|
marginOfError: 0,
|
|
69
98
|
max: 0,
|
|
@@ -128,22 +157,34 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
128
157
|
* Calculate initial iterations based on benchmark characteristics Adapted
|
|
129
158
|
* from bench-node's getInitialIterations algorithm
|
|
130
159
|
*/
|
|
131
|
-
async calculateInitialIterations(fn, targetTime
|
|
160
|
+
async calculateInitialIterations(fn, targetTime, // in seconds
|
|
161
|
+
isAsync = false) {
|
|
132
162
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
133
163
|
const timer = process.hrtime.bigint;
|
|
134
164
|
const MIN_RESOLUTION = 0.5; // nanoseconds
|
|
135
165
|
const SCALE = 1e9; // ns to seconds
|
|
136
|
-
// Run a quick test with 30 iterations
|
|
137
|
-
const testIterations = 30;
|
|
166
|
+
// Run a quick test with 30 iterations (fewer for async to keep it fast)
|
|
167
|
+
const testIterations = isAsync ? 10 : 30;
|
|
138
168
|
const start = timer();
|
|
139
|
-
|
|
140
|
-
|
|
169
|
+
if (isAsync) {
|
|
170
|
+
for (let i = 0; i < testIterations; i++) {
|
|
171
|
+
await fn();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
for (let i = 0; i < testIterations; i++) {
|
|
176
|
+
fn();
|
|
177
|
+
}
|
|
141
178
|
}
|
|
142
179
|
const duration = Number(timer() - start);
|
|
143
180
|
const durationPerOp = Math.max(MIN_RESOLUTION, duration / testIterations);
|
|
144
181
|
// Calculate how many iterations we need for targetTime
|
|
145
182
|
const totalOpsForTargetTime = targetTime / (durationPerOp / SCALE);
|
|
146
|
-
|
|
183
|
+
// Use appropriate max based on sync/async
|
|
184
|
+
const maxIterations = isAsync
|
|
185
|
+
? AccurateEngine.MAX_ITERATIONS_PER_ROUND_ASYNC
|
|
186
|
+
: AccurateEngine.MAX_ITERATIONS_PER_ROUND;
|
|
187
|
+
return Math.min(maxIterations, Math.max(1, Math.round(totalOpsForTargetTime)));
|
|
147
188
|
}
|
|
148
189
|
/**
|
|
149
190
|
* Check if V8 native syntax is available
|
|
@@ -170,27 +211,67 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
170
211
|
/**
|
|
171
212
|
* Execute benchmark WITHOUT V8 optimization guards (fallback)
|
|
172
213
|
*/
|
|
173
|
-
async executeBenchmarkBasic(fn, config, signal) {
|
|
214
|
+
async executeBenchmarkBasic(fn, config, signal, isAsync = false) {
|
|
174
215
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
175
216
|
const timer = process.hrtime.bigint;
|
|
176
217
|
const samples = [];
|
|
177
218
|
const SCALE = 1e9;
|
|
178
219
|
const targetTime = config.time / 1000;
|
|
179
|
-
const initialIterations = await this.calculateInitialIterations(fn, targetTime);
|
|
220
|
+
const initialIterations = await this.calculateInitialIterations(fn, targetTime, isAsync);
|
|
180
221
|
if (config.warmup > 0) {
|
|
181
222
|
const warmupTime = Math.min(config.warmup / 1000, 0.05);
|
|
182
|
-
await this.runWarmup(fn, initialIterations, warmupTime);
|
|
223
|
+
await this.runWarmup(fn, initialIterations, warmupTime, isAsync);
|
|
183
224
|
}
|
|
184
225
|
const maxDuration = (config.time / 1000) * SCALE;
|
|
185
226
|
let timeSpent = 0;
|
|
186
227
|
let iterations = initialIterations;
|
|
187
|
-
|
|
228
|
+
// Use appropriate max based on sync/async
|
|
229
|
+
const maxIterations = isAsync
|
|
230
|
+
? AccurateEngine.MAX_ITERATIONS_PER_ROUND_ASYNC
|
|
231
|
+
: AccurateEngine.MAX_ITERATIONS_PER_ROUND;
|
|
232
|
+
// Determine loop condition based on limitBy setting
|
|
233
|
+
const shouldContinue = () => {
|
|
188
234
|
if (signal?.aborted) {
|
|
189
|
-
|
|
235
|
+
return false;
|
|
190
236
|
}
|
|
237
|
+
const timeRemaining = timeSpent < maxDuration;
|
|
238
|
+
const samplesRemaining = samples.length < config.iterations;
|
|
239
|
+
switch (config.limitBy) {
|
|
240
|
+
case 'all':
|
|
241
|
+
return timeRemaining && samplesRemaining;
|
|
242
|
+
case 'any':
|
|
243
|
+
return timeRemaining || samplesRemaining;
|
|
244
|
+
case 'iterations':
|
|
245
|
+
return samplesRemaining;
|
|
246
|
+
case 'time':
|
|
247
|
+
return timeRemaining;
|
|
248
|
+
default:
|
|
249
|
+
return timeRemaining && samplesRemaining;
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
while (shouldContinue()) {
|
|
191
253
|
const start = timer();
|
|
192
|
-
|
|
193
|
-
|
|
254
|
+
if (isAsync) {
|
|
255
|
+
// For async functions, await each call individually and check for abort
|
|
256
|
+
for (let i = 0; i < iterations; i++) {
|
|
257
|
+
if (signal?.aborted) {
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
await fn();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
// For sync functions, check for abort every 50 iterations
|
|
265
|
+
for (let i = 0; i < iterations; i++) {
|
|
266
|
+
if (i % 50 === 0 && signal?.aborted) {
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
fn();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Early exit if aborted during inner loop
|
|
273
|
+
if (signal?.aborted) {
|
|
274
|
+
break;
|
|
194
275
|
}
|
|
195
276
|
const duration = Number(timer() - start);
|
|
196
277
|
const durationPerOp = duration / iterations;
|
|
@@ -201,25 +282,25 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
201
282
|
}
|
|
202
283
|
const remainingTime = Math.max(0, (maxDuration - timeSpent) / SCALE);
|
|
203
284
|
iterations = Math.round(remainingTime / (durationPerOp / SCALE));
|
|
204
|
-
iterations = Math.max(1, Math.min(
|
|
285
|
+
iterations = Math.max(1, Math.min(maxIterations, iterations));
|
|
205
286
|
}
|
|
206
287
|
return samples;
|
|
207
288
|
}
|
|
208
289
|
/**
|
|
209
290
|
* Execute benchmark WITH V8 optimization guards (more accurate)
|
|
210
291
|
*/
|
|
211
|
-
async executeBenchmarkWithOptGuards(fn, config, signal) {
|
|
292
|
+
async executeBenchmarkWithOptGuards(fn, config, signal, isAsync = false) {
|
|
212
293
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
213
294
|
const timer = process.hrtime.bigint;
|
|
214
295
|
const samples = [];
|
|
215
296
|
const SCALE = 1e9;
|
|
216
297
|
// Calculate iterations based on config
|
|
217
298
|
const targetTime = config.time / 1000; // ms to seconds
|
|
218
|
-
const initialIterations = await this.calculateInitialIterations(fn, targetTime);
|
|
299
|
+
const initialIterations = await this.calculateInitialIterations(fn, targetTime, isAsync);
|
|
219
300
|
// Run warmup
|
|
220
301
|
if (config.warmup > 0) {
|
|
221
302
|
const warmupTime = Math.min(config.warmup / 1000, 0.05); // Max 50ms warmup
|
|
222
|
-
await this.runWarmup(fn, initialIterations, warmupTime);
|
|
303
|
+
await this.runWarmup(fn, initialIterations, warmupTime, isAsync);
|
|
223
304
|
}
|
|
224
305
|
// Create DoNotOptimize wrapper using V8 intrinsics
|
|
225
306
|
// This prevents V8 from optimizing away the benchmark code
|
|
@@ -232,15 +313,56 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
232
313
|
const maxDuration = (config.time / 1000) * SCALE;
|
|
233
314
|
let timeSpent = 0;
|
|
234
315
|
let iterations = initialIterations;
|
|
235
|
-
//
|
|
236
|
-
|
|
316
|
+
// Use appropriate max based on sync/async
|
|
317
|
+
const maxIterations = isAsync
|
|
318
|
+
? AccurateEngine.MAX_ITERATIONS_PER_ROUND_ASYNC
|
|
319
|
+
: AccurateEngine.MAX_ITERATIONS_PER_ROUND;
|
|
320
|
+
// Determine loop condition based on limitBy setting
|
|
321
|
+
const shouldContinue = () => {
|
|
237
322
|
if (signal?.aborted) {
|
|
238
|
-
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
const timeRemaining = timeSpent < maxDuration;
|
|
326
|
+
const samplesRemaining = samples.length < config.iterations;
|
|
327
|
+
switch (config.limitBy) {
|
|
328
|
+
case 'all':
|
|
329
|
+
return timeRemaining && samplesRemaining;
|
|
330
|
+
case 'any':
|
|
331
|
+
return timeRemaining || samplesRemaining;
|
|
332
|
+
case 'iterations':
|
|
333
|
+
return samplesRemaining;
|
|
334
|
+
case 'time':
|
|
335
|
+
return timeRemaining;
|
|
336
|
+
default:
|
|
337
|
+
return timeRemaining && samplesRemaining;
|
|
239
338
|
}
|
|
339
|
+
};
|
|
340
|
+
// Main benchmark loop
|
|
341
|
+
while (shouldContinue()) {
|
|
240
342
|
const start = timer();
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
343
|
+
if (isAsync) {
|
|
344
|
+
// For async functions, await each call individually and check for abort
|
|
345
|
+
for (let i = 0; i < iterations; i++) {
|
|
346
|
+
if (signal?.aborted) {
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
const result = await fn();
|
|
350
|
+
guardedDoNotOptimize(result); // Prevent optimization
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
// For sync functions, check for abort every 50 iterations
|
|
355
|
+
for (let i = 0; i < iterations; i++) {
|
|
356
|
+
if (i % 50 === 0 && signal?.aborted) {
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
const result = fn();
|
|
360
|
+
guardedDoNotOptimize(result); // Prevent optimization
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
// Early exit if aborted during inner loop
|
|
364
|
+
if (signal?.aborted) {
|
|
365
|
+
break;
|
|
244
366
|
}
|
|
245
367
|
const duration = Number(timer() - start);
|
|
246
368
|
const durationPerOp = duration / iterations;
|
|
@@ -253,7 +375,7 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
253
375
|
// Adjust iterations for next round
|
|
254
376
|
const remainingTime = Math.max(0, (maxDuration - timeSpent) / SCALE);
|
|
255
377
|
iterations = Math.round(remainingTime / (durationPerOp / SCALE));
|
|
256
|
-
iterations = Math.max(1, Math.min(
|
|
378
|
+
iterations = Math.max(1, Math.min(maxIterations, iterations));
|
|
257
379
|
}
|
|
258
380
|
return samples;
|
|
259
381
|
}
|
|
@@ -262,21 +384,34 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
262
384
|
*/
|
|
263
385
|
async runWarmup(
|
|
264
386
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
265
|
-
fn, initialIterations, warmupTime
|
|
387
|
+
fn, initialIterations, warmupTime, // in seconds
|
|
388
|
+
isAsync = false) {
|
|
266
389
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
267
390
|
const timer = process.hrtime.bigint;
|
|
268
391
|
const MIN_RESOLUTION = 0.5;
|
|
269
392
|
const SCALE = 1e9;
|
|
270
393
|
const maxDuration = warmupTime * SCALE;
|
|
271
394
|
const minSamples = 10;
|
|
395
|
+
// Use appropriate max based on sync/async
|
|
396
|
+
const maxIterations = isAsync
|
|
397
|
+
? AccurateEngine.MAX_ITERATIONS_PER_ROUND_ASYNC
|
|
398
|
+
: AccurateEngine.MAX_ITERATIONS_PER_ROUND;
|
|
272
399
|
let timeSpent = 0n;
|
|
273
400
|
let samples = 0;
|
|
274
|
-
let iterations = Math.min(initialIterations,
|
|
401
|
+
let iterations = Math.min(initialIterations, maxIterations);
|
|
275
402
|
while (Number(timeSpent) < maxDuration || samples <= minSamples) {
|
|
276
403
|
const start = timer();
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
404
|
+
if (isAsync) {
|
|
405
|
+
for (let i = 0; i < iterations; i++) {
|
|
406
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
407
|
+
await fn();
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
for (let i = 0; i < iterations; i++) {
|
|
412
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
413
|
+
fn();
|
|
414
|
+
}
|
|
280
415
|
}
|
|
281
416
|
const duration = timer() - start;
|
|
282
417
|
timeSpent += duration;
|
|
@@ -285,7 +420,7 @@ class AccurateEngine extends engine_js_1.ModestBenchEngine {
|
|
|
285
420
|
const durationPerOp = Math.max(MIN_RESOLUTION, Number(duration) / iterations);
|
|
286
421
|
const remainingTime = Math.max(0, (maxDuration - Number(timeSpent)) / SCALE);
|
|
287
422
|
iterations = Math.round(remainingTime / (durationPerOp / SCALE));
|
|
288
|
-
iterations = Math.max(1, Math.min(
|
|
423
|
+
iterations = Math.max(1, Math.min(maxIterations, iterations));
|
|
289
424
|
}
|
|
290
425
|
}
|
|
291
426
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accurate-engine.js","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accurate-engine.js","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,11 @@ export declare class AccurateEngine extends ModestBenchEngine {
|
|
|
29
29
|
* and excessive memory usage
|
|
30
30
|
*/
|
|
31
31
|
private static readonly MAX_ITERATIONS_PER_ROUND;
|
|
32
|
+
/**
|
|
33
|
+
* Maximum iterations per round for async functions (much lower due to
|
|
34
|
+
* sequential await overhead)
|
|
35
|
+
*/
|
|
36
|
+
private static readonly MAX_ITERATIONS_PER_ROUND_ASYNC;
|
|
32
37
|
private hasCheckedNativeSyntax;
|
|
33
38
|
private nativeSyntaxErrorShown;
|
|
34
39
|
private nativeSyntaxSupported;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accurate-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,8BAA6B;AAG9B,OAAO,EAAE,iBAAiB,EAAE,sBAAqB;AAGjD;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAEzD,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;OAIG;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":"accurate-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,8BAA6B;AAG9B,OAAO,EAAE,iBAAiB,EAAE,sBAAqB;AAGjD;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAEzD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAO;IAE7D,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;OAIG;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;IA+ItB;;;OAGG;YACW,0BAA0B;IAyCxC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;YACW,qBAAqB;IAmGnC;;OAEG;YACW,6BAA6B;IAwH3C;;OAEG;YACW,SAAS;CAuDxB"}
|
|
@@ -29,6 +29,11 @@ export declare class AccurateEngine extends ModestBenchEngine {
|
|
|
29
29
|
* and excessive memory usage
|
|
30
30
|
*/
|
|
31
31
|
private static readonly MAX_ITERATIONS_PER_ROUND;
|
|
32
|
+
/**
|
|
33
|
+
* Maximum iterations per round for async functions (much lower due to
|
|
34
|
+
* sequential await overhead)
|
|
35
|
+
*/
|
|
36
|
+
private static readonly MAX_ITERATIONS_PER_ROUND_ASYNC;
|
|
32
37
|
private hasCheckedNativeSyntax;
|
|
33
38
|
private nativeSyntaxErrorShown;
|
|
34
39
|
private nativeSyntaxSupported;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accurate-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,6BAA6B;AAG9B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB;AAGjD;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAEzD,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;OAIG;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":"accurate-engine.d.ts","sourceRoot":"","sources":["../../../src/core/engines/accurate-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,6BAA6B;AAG9B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB;AAGjD;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAEzD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAO;IAE7D,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;OAIG;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;IA+ItB;;;OAGG;YACW,0BAA0B;IAyCxC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;YACW,qBAAqB;IAmGnC;;OAEG;YACW,6BAA6B;IAwH3C;;OAEG;YACW,SAAS;CAuDxB"}
|