@electron-stagewright/plugin-budget 0.1.0 → 0.2.0

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/README.md CHANGED
@@ -92,6 +92,16 @@ another pid namespace reports memory `unmeasured` instead of a stranger's number
92
92
  budget does not name is reported and never gates; GPU memory swings widely between machines, so
93
93
  leave it out unless you mean to gate it.
94
94
  - **`thresholdPercent`** is the tolerance over each limit; a section may override it.
95
+ - **`aggregate`** in a memory block is `end` (default) or `peak`; see Peak memory below.
96
+ - **`memoryProbe`** (top level) is a renderer expression that resolves to `app.getAppMetrics()`,
97
+ for builds whose main process cannot be inspected.
98
+ - **Phase.** `startup` reads `cold` unless it names a phase. A `memory` block that names none reads
99
+ the run's `warm` rounds, else `live`, else `cold`: a run of fresh-profile launches
100
+ (`--phases cold`) is gated on its cold rounds.
101
+ - **Startup is not launch-to-ready.** `maxFirstWindowMs` is process creation to the end of the
102
+ first window's load event. Work the app does after that (opening a database, fetching data,
103
+ starting a server) is not in it, so a wall-clock launch budget converted to it gets looser
104
+ without saying so. Time that work in a workload, or keep it in its own gate.
95
105
  - **`$comment`** is allowed in every object. Unknown keys are rejected, so a typo cannot silently
96
106
  disable a limit.
97
107
 
@@ -100,7 +110,7 @@ another pid namespace reports memory `unmeasured` instead of a stranger's number
100
110
  ```sh
101
111
  electron-stagewright-budget measure --main dist/main.js --budget perf-budget.json \
102
112
  --rounds 5 --out run.json --check
103
- electron-stagewright-budget check run.json --budget perf-budget.json [--strict] [--require-measurement]
113
+ electron-stagewright-budget check run.json --budget perf-budget.json [--no-tolerance] [--require-measurement]
104
114
  electron-stagewright-budget compare before.json after.json
105
115
  electron-stagewright-budget bundle --budget perf-budget.json [--root <dir>] [--out run.json]
106
116
  ```
@@ -124,25 +134,81 @@ electron-stagewright-budget bundle --budget perf-budget.json [--root <dir>] [--o
124
134
  }
125
135
  ```
126
136
 
137
+ - `--before-round <script.mjs>` prepares each round before its first launch. The module
138
+ default-exports `async ({ round, profile }) => ({ env, args })` (string values only); the
139
+ returned `env` and `args` are added to that round's launches. Use it to hand every launch its own copy of a fixture, so
140
+ rounds that share state do not skew the median.
141
+ - `--skip-failed-rounds` reports a round whose launch or measurement failed and goes on. Pair it
142
+ with `--min-samples N` on the check: a metric with fewer than `N` measured launches is left
143
+ unmeasured instead of gated, and `--require-measurement` turns that into a failure. If every
144
+ round fails, the command fails with the first round's error (exit `2`):
145
+
146
+ ```sh
147
+ electron-stagewright-budget measure --main dist/main.js --budget perf-budget.json \
148
+ --rounds 3 --phases cold --before-round fresh-fixture.mjs --skip-failed-rounds \
149
+ --check --min-samples 2
150
+ ```
151
+
127
152
  - `bundle` measures the `bundle` entries (paths resolve from `--root`, default the budget file's
128
153
  directory) and gates them. It needs no Electron and no display.
129
- - `check` compares a run file to the budget. Values are the median over the rounds of a phase.
154
+ - `check` compares run files to the budget. Several files (`check a.json b.json c.json`) are merged
155
+ into one run first, and values are the median over the rounds of a phase. `--min-samples N`
156
+ leaves a runtime metric with fewer than `N` measured rounds `unmeasured`. In code,
157
+ `mergeRuns(runs)` and `checkRun(run, budget, { minSamples })` do the same, and `measureApp` takes
158
+ `beforeRound` and `failedRounds: 'skip'`.
130
159
  - `compare` prints a before/after table of two runs.
131
- - `--strict` ignores `thresholdPercent`. `--require-measurement` fails a budgeted metric the run did
132
- not measure; without it that metric is listed as `unmeasured`.
160
+ - `--no-tolerance` ignores `thresholdPercent`, so the limit itself gates. It does not turn warnings
161
+ into failures: every verdict already fails the command. `--strict` is a deprecated alias that
162
+ prints a warning. `--require-measurement` fails a budgeted metric the run did not measure;
163
+ without it that metric is listed as `unmeasured`.
133
164
  - `--json` prints the machine report instead of the table.
134
165
 
166
+ To run the CLI from a script, resolve it instead of guessing a path inside `dist/`:
167
+
168
+ ```js
169
+ const cli = fileURLToPath(import.meta.resolve('@electron-stagewright/plugin-budget/cli'))
170
+ // or, from CommonJS: require.resolve('@electron-stagewright/plugin-budget/cli')
171
+ spawn(process.execPath, [cli, 'measure', '--main', 'dist/main.js', '--out', 'run.json'])
172
+ ```
173
+
135
174
  Exit codes: `0` within budget, `1` over budget **or nothing measured**, `2` usage error, unreadable
136
175
  input, or any other error. A bundle entry that matches no file is `unmeasured`, never zero bytes,
137
176
  and fails `bundle`. `measure` writes no run when no round produced a measurement.
138
177
 
139
178
  The inspector Stagewright attaches is part of what `measure` measures, so calibrate budgets with
140
- this tool. A packaged build whose fuses forbid inspection cannot be measured yet.
179
+ this tool.
180
+
181
+ ### Packaged builds with the inspect fuse off
182
+
183
+ A release build with the `EnableNodeCliInspectArguments` fuse off has no main-process inspector.
184
+ `measure --executable` still launches it (over CDP, through the renderer), and then:
185
+
186
+ - **Memory** comes from the app itself. Expose `app.getAppMetrics()` to the renderer (for example
187
+ `ipcMain.handle('app-metrics', () => app.getAppMetrics())` plus a preload bridge), and name the
188
+ expression in the budget as `"memoryProbe": "window.api.appMetrics()"`. The host still reads
189
+ each pid in the platform metric. Keep the bridge out of builds users get if you do not want it
190
+ there.
191
+ - **IPC latency** works as usual.
192
+ - **Main-thread blocking and startup** are `unmeasured`, with the reason.
193
+
194
+ ### Peak memory
195
+
196
+ `"aggregate": "peak"` in a memory block gates the heaviest moment of the window instead of its
197
+ end: `measure` samples memory every second (`--memory-sample-ms` to change it, or to sample
198
+ without the budget asking) and keeps the sample with the most memory outside the GPU as
199
+ `memoryPeak`. Check rows are then `memoryPeak.main`, `memoryPeak.totalWithoutGpu`, and so on, and
200
+ the median is taken over the rounds' peaks. Sampling through main adds a little main-thread work
201
+ of its own, and a `memoryProbe` adds IPC round trips, so calibrate blocking and IPC budgets with
202
+ the same setting. A round where no sample succeeded leaves `memoryPeak` unmeasured.
141
203
 
142
204
  ## Library
143
205
 
206
+ `@electron-stagewright/plugin-budget/check` holds the budget and run formats, `checkRun`, and the
207
+ report renderers. It loads neither core nor the plugin, so a gate that only checks runs without the
208
+ MCP SDK. The root export adds `measureApp`, `measureSession` and the plugin.
209
+
144
210
  ```ts
145
- import { checkRun, loadBudget, loadRun } from '@electron-stagewright/plugin-budget'
211
+ import { checkRun, loadBudget, loadRun } from '@electron-stagewright/plugin-budget/check'
146
212
 
147
213
  const report = checkRun(await loadRun('run.json'), await loadBudget('perf-budget.json'))
148
214
  if (!report.passed) console.error(report.results.filter((r) => r.status === 'fail'))
package/dist/budget.d.ts CHANGED
@@ -27,6 +27,10 @@ declare const memoryPlatformSchema: z.ZodObject<{
27
27
  warm: "warm";
28
28
  live: "live";
29
29
  }>>;
30
+ aggregate: z.ZodOptional<z.ZodEnum<{
31
+ end: "end";
32
+ peak: "peak";
33
+ }>>;
30
34
  thresholdPercent: z.ZodOptional<z.ZodNumber>;
31
35
  perTypeMb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
32
36
  main: "main";
@@ -50,6 +54,7 @@ declare const bundleEntrySchema: z.ZodObject<{
50
54
  export declare const budgetSchema: z.ZodObject<{
51
55
  $schema: z.ZodOptional<z.ZodString>;
52
56
  thresholdPercent: z.ZodOptional<z.ZodNumber>;
57
+ memoryProbe: z.ZodOptional<z.ZodString>;
53
58
  startup: z.ZodOptional<z.ZodObject<{
54
59
  phase: z.ZodOptional<z.ZodEnum<{
55
60
  cold: "cold";
@@ -76,6 +81,10 @@ export declare const budgetSchema: z.ZodObject<{
76
81
  warm: "warm";
77
82
  live: "live";
78
83
  }>>;
84
+ aggregate: z.ZodOptional<z.ZodEnum<{
85
+ end: "end";
86
+ peak: "peak";
87
+ }>>;
79
88
  thresholdPercent: z.ZodOptional<z.ZodNumber>;
80
89
  perTypeMb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
81
90
  main: "main";
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,mGAAmG;AACnG,eAAO,MAAM,cAAc,6DAA8D,CAAA;AACzF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,+EAA+E;AAC/E,eAAO,MAAM,aAAa,0DAA2D,CAAA;AACrF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,sGAAsG;AACtG,eAAO,MAAM,MAAM,mCAAoC,CAAA;AACvD,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,eAAO,MAAM,gBAAgB,uCAAwC,CAAA;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAM9D,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;kBASxB,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;;;;kBAQrB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmDvB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,uFAAuF;AACvF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB;IAEpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM;gBAFnB,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,EACpD,OAAO,EAAE,MAAM,EACN,UAAU,CAAC,EAAE,MAAM,YAAA;CAK/B;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrE;AAED,uCAAuC;AACvC,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBpE"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,mGAAmG;AACnG,eAAO,MAAM,cAAc,6DAA8D,CAAA;AACzF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,+EAA+E;AAC/E,eAAO,MAAM,aAAa,0DAA2D,CAAA;AACrF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,sGAAsG;AACtG,eAAO,MAAM,MAAM,mCAAoC,CAAA;AACvD,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,eAAO,MAAM,gBAAgB,uCAAwC,CAAA;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAM9D,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWxB,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;;;;kBAQrB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsDvB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,uFAAuF;AACvF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB;IAEpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM;gBAFnB,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,EACpD,OAAO,EAAE,MAAM,EACN,UAAU,CAAC,EAAE,MAAM,YAAA;CAK/B;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrE;AAED,uCAAuC;AACvC,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBpE"}
package/dist/budget.js CHANGED
@@ -19,6 +19,8 @@ const memoryPlatformSchema = z.strictObject({
19
19
  ...comment,
20
20
  metric: z.enum(MEMORY_METRICS),
21
21
  phase: z.enum(PHASES).optional(),
22
+ // `end`: the sample taken when the window closes. `peak`: the window's highest sample outside GPU.
23
+ aggregate: z.enum(['end', 'peak']).optional(),
22
24
  thresholdPercent,
23
25
  // Summed per type. A type that is not named (GPU, typically) is reported but never gates.
24
26
  perTypeMb: z.partialRecord(z.enum(PROCESS_TYPES), limit).optional(),
@@ -38,6 +40,9 @@ export const budgetSchema = z.strictObject({
38
40
  ...comment,
39
41
  $schema: z.string().optional(),
40
42
  thresholdPercent,
43
+ // Renderer expression resolving to `app.getAppMetrics()`, for a build whose main process cannot
44
+ // be inspected (the EnableNodeCliInspectArguments fuse off).
45
+ memoryProbe: z.string().min(1).optional(),
41
46
  startup: z
42
47
  .strictObject({
43
48
  ...comment,
@@ -1 +1 @@
1
- {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@electron-stagewright/plugin-budget/check`: the budget and run formats and the check, without
3
+ * core, the plugin, or anything that launches Electron.
4
+ *
5
+ * @module
6
+ */
7
+ export { BUDGET_PLATFORMS, BudgetFileError, MEMORY_METRICS, PHASES, PROCESS_TYPES, budgetSchema, loadBudget, parseBudget, } from './budget.js';
8
+ export type { Budget, BudgetPlatform, BundleEntryBudget, MemoryMetric, MemoryPlatformBudget, Phase, ProcessType, } from './budget.js';
9
+ export { checkRun } from './check.js';
10
+ export type { CheckOptions, CheckReport, CheckResult, CheckStatus } from './check.js';
11
+ export { compareRuns, renderCheckReport, renderComparison } from './render.js';
12
+ export type { ComparisonRow } from './render.js';
13
+ export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, mergeRuns, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
14
+ export type { BudgetRun, BundleEntryMeasurement, LatencySummary, Measurement, MemoryMeasurement, ProcessMemory, StallSummary, SummaryRow, } from './run.js';
15
+ //# sourceMappingURL=check-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-api.d.ts","sourceRoot":"","sources":["../src/check-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `@electron-stagewright/plugin-budget/check`: the budget and run formats and the check, without
3
+ * core, the plugin, or anything that launches Electron.
4
+ *
5
+ * @module
6
+ */
7
+ export { BUDGET_PLATFORMS, BudgetFileError, MEMORY_METRICS, PHASES, PROCESS_TYPES, budgetSchema, loadBudget, parseBudget, } from './budget.js';
8
+ export { checkRun } from './check.js';
9
+ export { compareRuns, renderCheckReport, renderComparison } from './render.js';
10
+ export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, mergeRuns, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
11
+ //# sourceMappingURL=check-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-api.js","sourceRoot":"","sources":["../src/check-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AAUpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA"}
package/dist/check.d.ts CHANGED
@@ -32,11 +32,18 @@ export interface CheckReport {
32
32
  }
33
33
  export interface CheckOptions {
34
34
  /** Ignore every `thresholdPercent`: the limit itself gates. */
35
+ readonly ignoreThreshold?: boolean;
36
+ /** @deprecated Same as `ignoreThreshold`; it never meant "fail instead of warn". */
35
37
  readonly strict?: boolean;
36
38
  /** Treat a budgeted metric the run did not measure as a failure. */
37
39
  readonly requireMeasurement?: boolean;
38
40
  /** Read every metric from this phase instead of the budget's own phases. */
39
41
  readonly phase?: Phase;
42
+ /**
43
+ * Rounds a runtime metric needs before its median counts; fewer leaves it `unmeasured`. Use it
44
+ * with `--rounds N` so that a median never rests on one launch. Bundle entries are exempt.
45
+ */
46
+ readonly minSamples?: number;
40
47
  }
41
48
  /** Compare `run` to `budget` for the platform the run was measured on. */
42
49
  export declare function checkRun(run: BudgetRun, budget: Budget, options?: CheckOptions): CheckReport;
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAExE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAA;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAA;IACtF,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/F,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB;AA+ID,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CA6ChG"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAExE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAA;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAA;IACtF,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/F,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAuKD,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAuDhG"}
package/dist/check.js CHANGED
@@ -6,9 +6,12 @@
6
6
  import { PROCESS_TYPES } from './budget.js';
7
7
  import { summarizeRun } from './run.js';
8
8
  const ANY_PHASE_ORDER = ['warm', 'live', 'cold'];
9
- function expectations(budget, platform, options) {
9
+ function expectations(budget, run, options) {
10
+ const platform = run.platform;
10
11
  const list = [];
11
- const tolerance = (own) => options.strict === true ? 0 : (own ?? budget.thresholdPercent ?? 0);
12
+ const tolerance = (own) => options.ignoreThreshold === true || options.strict === true
13
+ ? 0
14
+ : (own ?? budget.thresholdPercent ?? 0);
12
15
  if (budget.startup !== undefined) {
13
16
  list.push({
14
17
  id: 'startup.firstWindowMs',
@@ -21,23 +24,27 @@ function expectations(budget, platform, options) {
21
24
  }
22
25
  const memory = budget.memory?.[platform];
23
26
  if (memory !== undefined) {
27
+ const prefix = memory.aggregate === 'peak' ? 'memoryPeak' : 'memory';
28
+ // Unset: the first of warm, live, cold whose rounds measured memory, else that has rounds.
29
+ const roundsOf = (measured) => ANY_PHASE_ORDER.find((phase) => run.rounds.some((round) => round.phase === phase && (!measured || round.measurement[prefix] !== undefined)));
30
+ const memoryPhase = options.phase ?? memory.phase ?? roundsOf(true) ?? roundsOf(false);
24
31
  const base = {
25
32
  section: 'memory',
26
33
  unit: 'MB',
27
34
  thresholdPercent: tolerance(memory.thresholdPercent),
28
- phase: options.phase ?? memory.phase ?? 'warm',
35
+ ...(memoryPhase === undefined ? {} : { phase: memoryPhase }),
29
36
  metric: memory.metric,
30
37
  };
31
38
  for (const type of PROCESS_TYPES) {
32
39
  const max = memory.perTypeMb?.[type];
33
40
  if (max !== undefined)
34
- list.push({ ...base, id: `memory.${type}`, limit: max });
41
+ list.push({ ...base, id: `${prefix}.${type}`, limit: max });
35
42
  }
36
43
  if (memory.totalWithoutGpuMb !== undefined) {
37
- list.push({ ...base, id: 'memory.totalWithoutGpu', limit: memory.totalWithoutGpuMb });
44
+ list.push({ ...base, id: `${prefix}.totalWithoutGpu`, limit: memory.totalWithoutGpuMb });
38
45
  }
39
46
  if (memory.totalMb !== undefined) {
40
- list.push({ ...base, id: 'memory.total', limit: memory.totalMb });
47
+ list.push({ ...base, id: `${prefix}.total`, limit: memory.totalMb });
41
48
  }
42
49
  }
43
50
  const mainThread = budget.mainThread;
@@ -110,6 +117,15 @@ function unmeasuredDetail(run, expectation) {
110
117
  ? 'the run has no rounds'
111
118
  : `the run has no ${expectation.phase} round`;
112
119
  }
120
+ if (expectation.section === 'memory' &&
121
+ expectation.id.startsWith('memoryPeak.') &&
122
+ rounds.every((round) => round.measurement.memoryPeak === undefined) &&
123
+ rounds.some((round) => round.measurement.memory !== undefined)) {
124
+ const failed = rounds
125
+ .map((round) => round.measurement.unavailable?.['memoryPeak'])
126
+ .find((value) => value !== undefined);
127
+ return failed ?? 'the run has no peak sample; measure with --memory-sample-ms';
128
+ }
113
129
  if (expectation.section === 'memory') {
114
130
  const measured = rounds.map((round) => round.measurement.memory?.metric).find(Boolean);
115
131
  // Megabytes in another metric are a different quantity, never a comparable one.
@@ -128,7 +144,7 @@ function unmeasuredDetail(run, expectation) {
128
144
  /** Compare `run` to `budget` for the platform the run was measured on. */
129
145
  export function checkRun(run, budget, options = {}) {
130
146
  const rows = summarizeRun(run);
131
- const results = expectations(budget, run.platform, options).map((expectation) => {
147
+ const results = expectations(budget, run, options).map((expectation) => {
132
148
  // Divide last: 200 * (1 + 15 / 100) is 229.99999999999997, which would fail a 230.
133
149
  const exactAllowed = (expectation.limit * (100 + expectation.thresholdPercent)) / 100;
134
150
  const allowed = Math.round(exactAllowed * 10) / 10;
@@ -144,6 +160,16 @@ export function checkRun(run, budget, options = {}) {
144
160
  if (row === undefined) {
145
161
  return { ...base, status: 'unmeasured', detail: unmeasuredDetail(run, expectation) };
146
162
  }
163
+ const needed = options.minSamples ?? 1;
164
+ if (expectation.section !== 'bundle' && row.samples < needed) {
165
+ return {
166
+ ...base,
167
+ ...(row.phase === undefined ? {} : { phase: row.phase }),
168
+ status: 'unmeasured',
169
+ actual: row.value,
170
+ detail: `${row.samples} of the ${needed} rounds needed measured ${expectation.id}`,
171
+ };
172
+ }
147
173
  return {
148
174
  ...base,
149
175
  ...(row.phase === undefined ? {} : { phase: row.phase }),
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -23,12 +23,14 @@ export type BudgetCliOptions = {
23
23
  readonly command: 'help';
24
24
  } | {
25
25
  readonly command: 'check';
26
- readonly runPath: string;
26
+ readonly runPaths: readonly string[];
27
27
  readonly budgetPath: string;
28
- readonly strict: boolean;
28
+ readonly noTolerance: boolean;
29
+ readonly minSamples?: number;
29
30
  readonly requireMeasurement: boolean;
30
31
  readonly phase?: Phase;
31
32
  readonly json: boolean;
33
+ readonly deprecatedStrict?: true;
32
34
  } | {
33
35
  readonly command: 'compare';
34
36
  readonly beforePath: string;
@@ -39,8 +41,9 @@ export type BudgetCliOptions = {
39
41
  readonly budgetPath: string;
40
42
  readonly root?: string;
41
43
  readonly outPath?: string;
42
- readonly strict: boolean;
44
+ readonly noTolerance: boolean;
43
45
  readonly json: boolean;
46
+ readonly deprecatedStrict?: true;
44
47
  } | MeasureCliOptions;
45
48
  export interface MeasureCliOptions {
46
49
  readonly command: 'measure';
@@ -55,13 +58,18 @@ export interface MeasureCliOptions {
55
58
  readonly windowMs?: number;
56
59
  readonly workloadPath?: string;
57
60
  readonly workloadTimeoutMs?: number;
61
+ readonly beforeRoundPath?: string;
62
+ readonly memorySampleMs?: number;
63
+ readonly skipFailedRounds: boolean;
64
+ readonly minSamples?: number;
58
65
  readonly phase?: Phase;
59
66
  readonly label?: string;
60
67
  readonly outPath?: string;
61
68
  readonly check: boolean;
62
- readonly strict: boolean;
69
+ readonly noTolerance: boolean;
63
70
  readonly requireMeasurement: boolean;
64
71
  readonly json: boolean;
72
+ readonly deprecatedStrict?: true;
65
73
  }
66
74
  /** Seam for tests: the launch-and-measure step. */
67
75
  export interface BudgetCliDependencies {
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}