@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/dist/measure.js CHANGED
@@ -9,10 +9,11 @@ import path from 'node:path';
9
9
  import { NOOP_LOGGER, createServer } from '@electron-stagewright/core';
10
10
  import { DEFAULT_WINDOW_MS } from './probe.js';
11
11
  import { createRun } from './run.js';
12
- import { measureSession, startWindow } from './session.js';
12
+ import { measureSession, heavierMemory, sampleMemory, startWindow, } from './session.js';
13
13
  export const DEFAULT_ROUNDS = 3;
14
14
  export const DEFAULT_SETTLE_MS = 3_000;
15
15
  export const DEFAULT_WORKLOAD_TIMEOUT_MS = 120_000;
16
+ export const DEFAULT_MEMORY_SAMPLE_MS = 1_000;
16
17
  const LOAD_TIMEOUT_MS = 30_000;
17
18
  // loadEventEnd is only set once the load event has finished.
18
19
  const LOADED_BODY = `
@@ -38,14 +39,96 @@ async function withTimeout(work, ms, what) {
38
39
  clearTimeout(timer);
39
40
  }
40
41
  }
42
+ /** Why main eval is unavailable on this session, or undefined when it works. */
43
+ async function mainEvalUnavailable(session) {
44
+ try {
45
+ await session.evaluate('main', 'return true');
46
+ return undefined;
47
+ }
48
+ catch (error) {
49
+ const reason = error instanceof Error ? error.message : String(error);
50
+ return `main eval is unavailable (${reason})`;
51
+ }
52
+ }
53
+ function memorySampleMs(options) {
54
+ if (options.memorySampleMs !== undefined)
55
+ return options.memorySampleMs;
56
+ const platform = process.platform;
57
+ return options.budget?.memory?.[platform]?.aggregate === 'peak'
58
+ ? DEFAULT_MEMORY_SAMPLE_MS
59
+ : undefined;
60
+ }
61
+ /** Bounds the wait for a sample still running when the window closes. */
62
+ const SAMPLER_STOP_MS = 5_000;
63
+ /**
64
+ * Samples memory until stopped; `peak` keeps the heaviest sample outside the GPU, or returns
65
+ * undefined when no sample during the window succeeded.
66
+ */
67
+ export function startSampler(session, source, intervalMs) {
68
+ if (intervalMs === undefined) {
69
+ return { stop: () => Promise.resolve(), peak: () => undefined };
70
+ }
71
+ let best;
72
+ let sampled = false;
73
+ let running = true;
74
+ let wake = () => undefined;
75
+ const keep = (sample) => {
76
+ if (sample !== undefined && (best === undefined || heavierMemory(sample, best)))
77
+ best = sample;
78
+ };
79
+ const loop = (async () => {
80
+ while (running) {
81
+ const sample = await sampleMemory(session, source);
82
+ if (!running)
83
+ break;
84
+ sampled ||= sample !== undefined;
85
+ keep(sample);
86
+ await new Promise((resolve) => {
87
+ const timer = setTimeout(resolve, intervalMs);
88
+ wake = () => {
89
+ clearTimeout(timer);
90
+ resolve();
91
+ };
92
+ });
93
+ }
94
+ })();
95
+ return {
96
+ stop: async () => {
97
+ running = false;
98
+ wake();
99
+ await withTimeout(loop, SAMPLER_STOP_MS, 'memory sampler').catch(() => undefined);
100
+ },
101
+ peak: (end) => {
102
+ if (!sampled)
103
+ return undefined;
104
+ keep(end);
105
+ return best;
106
+ },
107
+ };
108
+ }
109
+ function checkSetup(setup) {
110
+ if (setup === undefined)
111
+ return {};
112
+ const strings = (value) => Array.isArray(value) && value.every((item) => typeof item === 'string');
113
+ const env = setup.env;
114
+ if (typeof setup !== 'object' ||
115
+ (setup.args !== undefined && !strings(setup.args)) ||
116
+ (env !== undefined && (typeof env !== 'object' || env === null || !strings(Object.values(env))))) {
117
+ throw new TypeError('beforeRound must return { env?: Record<string, string>, args?: string[] }');
118
+ }
119
+ return setup;
120
+ }
41
121
  /** Launch once on `profile` and, when `measure` is set, take one measurement. */
42
- async function launchOnce(options, profile, phase, measure) {
122
+ async function launchOnce(options, setup, profile, phase, measure) {
43
123
  const server = await createServer({ allowEval: true, logger: NOOP_LOGGER });
44
124
  const dispatch = (tool, args = {}) => server.dispatcher.dispatch(tool, args);
45
125
  try {
46
126
  const launched = await dispatch('electron_launch', {
47
127
  ...options.launch,
48
- args: [...(options.launch.args ?? []), `--user-data-dir=${profile}`],
128
+ ...(options.launch.env === undefined && setup.env === undefined
129
+ ? {}
130
+ : { env: { ...options.launch.env, ...setup.env } }),
131
+ args: [...(options.launch.args ?? []), ...(setup.args ?? []), `--user-data-dir=${profile}`],
49
132
  });
50
133
  if (launched['ok'] !== true) {
51
134
  throw new Error(`could not launch the app: ${String(launched['error'] ?? launched['code'])}`);
@@ -65,30 +148,65 @@ async function launchOnce(options, profile, phase, measure) {
65
148
  probe: probe.probe,
66
149
  ...(probe.intervalMs === undefined ? {} : { intervalMs: probe.intervalMs }),
67
150
  };
151
+ // A build with the EnableNodeCliInspectArguments fuse off launches over CDP alone.
152
+ const mainUnavailable = await mainEvalUnavailable(session);
68
153
  const open = await startWindow(session, {
69
154
  allowRenderer: true,
70
155
  ...(ipc === undefined ? {} : { ipc }),
156
+ ...(mainUnavailable === undefined ? {} : { mainUnavailable }),
71
157
  });
158
+ const memoryProbe = options.budget?.memoryProbe;
159
+ const source = {
160
+ allowRenderer: true,
161
+ ...(mainUnavailable === undefined ? {} : { mainUnavailable }),
162
+ ...(memoryProbe === undefined ? {} : { memoryProbe }),
163
+ };
164
+ const sampler = startSampler(session, source, memorySampleMs(options));
72
165
  const windowMs = options.windowMs ?? options.budget?.mainThread?.windowMs ?? DEFAULT_WINDOW_MS;
73
- if (options.workload === undefined)
74
- await sleep(windowMs);
75
- else {
76
- // A timed-out workload keeps running; once the window closes its dispatch rejects, so a
77
- // polling loop ends instead of keeping the process alive.
78
- let ended = false;
79
- const workloadDispatch = (tool, args) => ended
80
- ? Promise.reject(new Error('the measurement window has closed'))
81
- : dispatch(tool, args);
82
- try {
83
- await withTimeout(options.workload({ sessionId: managed.id, phase, dispatch: workloadDispatch }), options.workloadTimeoutMs ?? DEFAULT_WORKLOAD_TIMEOUT_MS, 'workload');
84
- }
85
- finally {
86
- ended = true;
166
+ try {
167
+ if (options.workload === undefined)
168
+ await sleep(windowMs);
169
+ else {
170
+ // A timed-out workload keeps running; once the window closes its dispatch rejects, so a
171
+ // polling loop ends instead of keeping the process alive.
172
+ let ended = false;
173
+ const workloadDispatch = (tool, args) => ended
174
+ ? Promise.reject(new Error('the measurement window has closed'))
175
+ : dispatch(tool, args);
176
+ try {
177
+ await withTimeout(options.workload({ sessionId: managed.id, phase, dispatch: workloadDispatch }), options.workloadTimeoutMs ?? DEFAULT_WORKLOAD_TIMEOUT_MS, 'workload');
178
+ }
179
+ finally {
180
+ ended = true;
181
+ }
87
182
  }
88
183
  }
89
- const measured = await measureSession(session, { allowRenderer: true, open, windowMs });
184
+ finally {
185
+ await sampler.stop();
186
+ }
187
+ const measured = await measureSession(session, {
188
+ allowRenderer: true,
189
+ open,
190
+ windowMs,
191
+ ...(mainUnavailable === undefined ? {} : { mainUnavailable }),
192
+ ...(memoryProbe === undefined ? {} : { memoryProbe }),
193
+ });
194
+ const sampleMs = memorySampleMs(options);
195
+ const peak = sampler.peak(measured.measurement.memory);
196
+ const unavailable = sampleMs !== undefined && peak === undefined
197
+ ? {
198
+ unavailable: {
199
+ ...measured.measurement.unavailable,
200
+ memoryPeak: 'no memory sample succeeded during the window',
201
+ },
202
+ }
203
+ : {};
90
204
  return {
91
- measurement: measured.measurement,
205
+ measurement: {
206
+ ...measured.measurement,
207
+ ...unavailable,
208
+ ...(peak === undefined ? {} : { memoryPeak: peak }),
209
+ },
92
210
  ...(measured.electronVersion === undefined
93
211
  ? {}
94
212
  : { electronVersion: measured.electronVersion }),
@@ -110,26 +228,38 @@ export async function measureApp(options) {
110
228
  const phases = options.phases ?? ['cold', 'warm'];
111
229
  const rounds = [];
112
230
  let electronVersion;
231
+ let firstFailure;
113
232
  for (let round = 1; round <= (options.rounds ?? DEFAULT_ROUNDS); round += 1) {
114
233
  const profile = await mkdtemp(path.join(tmpdir(), 'sw-budget-profile-'));
115
234
  try {
235
+ const setup = checkSetup(await options.beforeRound?.({ round, profile }));
116
236
  for (const phase of ['cold', 'warm']) {
117
237
  const measure = phases.includes(phase);
118
238
  if (!measure && !(phase === 'cold' && phases.includes('warm')))
119
239
  continue;
120
240
  options.onProgress?.(`round ${round}: ${phase}${measure ? '' : ' (priming, unmeasured)'}`);
121
- const result = await launchOnce(options, profile, phase, measure);
241
+ const result = await launchOnce(options, setup, profile, phase, measure);
122
242
  electronVersion ??= result.electronVersion;
123
243
  if (result.measurement !== undefined) {
124
244
  rounds.push({ round, phase, measurement: result.measurement });
125
245
  }
126
246
  }
127
247
  }
248
+ catch (error) {
249
+ if (options.failedRounds !== 'skip')
250
+ throw error;
251
+ firstFailure ??= error;
252
+ // A warm launch shares the cold one's state, so the rest of the round is dropped too.
253
+ options.onProgress?.(`round ${round} failed and was skipped: ${error instanceof Error ? error.message : String(error)}`);
254
+ }
128
255
  finally {
129
256
  // A process that outlives the app can hold the profile; that must not discard the rounds.
130
257
  await rm(profile, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 }).catch((error) => options.onProgress?.(`could not remove ${profile}: ${error instanceof Error ? error.message : String(error)}`));
131
258
  }
132
259
  }
260
+ // Every round failing is a setup problem (a wrong path, a broken script), not a budget verdict.
261
+ if (rounds.length === 0 && firstFailure !== undefined)
262
+ throw firstFailure;
133
263
  return createRun({
134
264
  rounds,
135
265
  ...(electronVersion === undefined ? {} : { electronVersion }),
@@ -1 +1 @@
1
- {"version":3,"file":"measure.js","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -381,7 +381,7 @@ export function createBudgetPlugin() {
381
381
  }
382
382
  const report = checkRun(run, budget, {
383
383
  phase: 'live',
384
- strict: args.strict === true,
384
+ ignoreThreshold: args.strict === true,
385
385
  requireMeasurement: args.requireMeasurement === true,
386
386
  });
387
387
  return makeSuccess({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/probe.d.ts CHANGED
@@ -27,6 +27,16 @@ export interface MainFacts {
27
27
  }[];
28
28
  }
29
29
  export type MainOp = 'facts' | 'start' | 'read' | 'startup';
30
+ /** What the renderer memory probe body returns. */
31
+ export interface RendererMetrics {
32
+ readonly userAgent: string;
33
+ readonly processes: MainFacts['processes'];
34
+ }
35
+ /**
36
+ * Renderer body for a build whose main process cannot be inspected: `probe` is the app's own
37
+ * expression that resolves to `app.getAppMetrics()`, typically through IPC.
38
+ */
39
+ export declare function buildMemoryProbeBody(probe: string): string;
30
40
  /**
31
41
  * Main-process body. `facts` reads process metrics. `start` arms a 10 ms timer whose lateness is
32
42
  * the blocked time (replacing any earlier window); `read` summarises it and, with `stop`, clears it.
@@ -1 +1 @@
1
- {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,gFAAgF;AAChF,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,kBAAkB,KAAK,CAAA;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAA;AACzC,eAAO,MAAM,iBAAiB,OAAQ,CAAA;AACtC,+FAA+F;AAC/F,eAAO,MAAM,aAAa,SAAU,CAAA;AAGpC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAClC,EAAE,CAAA;CACJ;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAY3D;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAqFrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAC1B;IACE,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC,GACD;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAK9B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6BvD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,iGAAiG;AACjG,eAAO,MAAM,aAAa,oPAQzB,CAAA"}
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,gFAAgF;AAChF,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,kBAAkB,KAAK,CAAA;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAA;AACzC,eAAO,MAAM,iBAAiB,OAAQ,CAAA;AACtC,+FAA+F;AAC/F,eAAO,MAAM,aAAa,SAAU,CAAA;AAGpC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAClC,EAAE,CAAA;CACJ;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAE3D,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;CAC3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1D;AAYD;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAqFrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAC1B;IACE,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC,GACD;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAK9B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6BvD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,iGAAiG;AACjG,eAAO,MAAM,aAAa,oPAQzB,CAAA"}
package/dist/probe.js CHANGED
@@ -12,6 +12,26 @@ export const DEFAULT_WINDOW_MS = 2_000;
12
12
  /** An unread window stops itself after this, so a detached or abandoned app keeps no timer. */
13
13
  export const MAX_WINDOW_MS = 600_000;
14
14
  const STARTUP_READ_TIMEOUT_MS = 10_000;
15
+ /**
16
+ * Renderer body for a build whose main process cannot be inspected: `probe` is the app's own
17
+ * expression that resolves to `app.getAppMetrics()`, typically through IPC.
18
+ */
19
+ export function buildMemoryProbeBody(probe) {
20
+ return `
21
+ const metrics = await (${probe});
22
+ if (!Array.isArray(metrics)) throw new Error('the memory probe did not resolve to an array');
23
+ return {
24
+ userAgent: navigator.userAgent,
25
+ processes: metrics.map((entry) => ({
26
+ pid: entry.pid,
27
+ type: entry.type,
28
+ name: entry.name || entry.serviceName || null,
29
+ workingSetKb: entry.memory.workingSetSize,
30
+ privateKb: typeof entry.memory.privateBytes === 'number' ? entry.memory.privateBytes : null,
31
+ })),
32
+ };
33
+ `;
34
+ }
15
35
  const FIRST_WINDOW_TIMING = `(() => {
16
36
  const entry = performance.getEntriesByType('navigation')[0];
17
37
  return {
package/dist/probe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAA;AACtC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AACpC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAmBtC,MAAM,mBAAmB,GAAG;;;;;;;;KAQvB,CAAA;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;iCAwBQ,aAAa;;;;;sCAKR,kBAAkB;mBACrC,YAAY;;OAExB,kBAAkB;;;;;;;;;;mCAUU,kBAAkB;gBACrC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA6BK,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;;uFAEmB,uBAAuB;;;;;;;;;;;CAW7G,CAAA;AAoBD,MAAM,OAAO,GAAG,eAAe,CAAA;AAC/B,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO;2BACkB,OAAO;;;UAGxB,OAAO;oCACmB,KAAK;;;;;;6BAMZ,eAAe;kCACV,aAAa;;;;;;;;;;;;;;;CAe9C,CAAA;AACD,CAAC;AAQD,iGAAiG;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG;wBACL,OAAO;;;;mBAIZ,OAAO;;;CAGzB,CAAA"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAA;AACtC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AACpC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAyBtC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO;yBACgB,KAAK;;;;;;;;;;;;CAY7B,CAAA;AACD,CAAC;AAED,MAAM,mBAAmB,GAAG;;;;;;;;KAQvB,CAAA;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;iCAwBQ,aAAa;;;;;sCAKR,kBAAkB;mBACrC,YAAY;;OAExB,kBAAkB;;;;;;;;;;mCAUU,kBAAkB;gBACrC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA6BK,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;;uFAEmB,uBAAuB;;;;;;;;;;;CAW7G,CAAA;AAoBD,MAAM,OAAO,GAAG,eAAe,CAAA;AAC/B,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO;2BACkB,OAAO;;;UAGxB,OAAO;oCACmB,KAAK;;;;;;6BAMZ,eAAe;kCACV,aAAa;;;;;;;;;;;;;;;CAe9C,CAAA;AACD,CAAC;AAQD,iGAAiG;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG;wBACL,OAAO;;;;mBAIZ,OAAO;;;CAGzB,CAAA"}
package/dist/run.d.ts CHANGED
@@ -81,6 +81,27 @@ declare const measurementSchema: z.ZodObject<{
81
81
  workingSetMb: z.ZodNumber;
82
82
  }, z.core.$strip>>;
83
83
  }, z.core.$strip>>;
84
+ memoryPeak: z.ZodOptional<z.ZodObject<{
85
+ metric: z.ZodEnum<{
86
+ footprint: "footprint";
87
+ pss: "pss";
88
+ privateBytes: "privateBytes";
89
+ workingSet: "workingSet";
90
+ }>;
91
+ processes: z.ZodArray<z.ZodObject<{
92
+ pid: z.ZodNumber;
93
+ type: z.ZodEnum<{
94
+ main: "main";
95
+ renderer: "renderer";
96
+ gpu: "gpu";
97
+ utility: "utility";
98
+ other: "other";
99
+ }>;
100
+ name: z.ZodOptional<z.ZodString>;
101
+ mb: z.ZodOptional<z.ZodNumber>;
102
+ workingSetMb: z.ZodNumber;
103
+ }, z.core.$strip>>;
104
+ }, z.core.$strip>>;
84
105
  mainThread: z.ZodOptional<z.ZodObject<{
85
106
  windowMs: z.ZodNumber;
86
107
  blockedMs: z.ZodNumber;
@@ -146,6 +167,27 @@ export declare const runSchema: z.ZodObject<{
146
167
  workingSetMb: z.ZodNumber;
147
168
  }, z.core.$strip>>;
148
169
  }, z.core.$strip>>;
170
+ memoryPeak: z.ZodOptional<z.ZodObject<{
171
+ metric: z.ZodEnum<{
172
+ footprint: "footprint";
173
+ pss: "pss";
174
+ privateBytes: "privateBytes";
175
+ workingSet: "workingSet";
176
+ }>;
177
+ processes: z.ZodArray<z.ZodObject<{
178
+ pid: z.ZodNumber;
179
+ type: z.ZodEnum<{
180
+ main: "main";
181
+ renderer: "renderer";
182
+ gpu: "gpu";
183
+ utility: "utility";
184
+ other: "other";
185
+ }>;
186
+ name: z.ZodOptional<z.ZodString>;
187
+ mb: z.ZodOptional<z.ZodNumber>;
188
+ workingSetMb: z.ZodNumber;
189
+ }, z.core.$strip>>;
190
+ }, z.core.$strip>>;
149
191
  mainThread: z.ZodOptional<z.ZodObject<{
150
192
  windowMs: z.ZodNumber;
151
193
  blockedMs: z.ZodNumber;
@@ -192,6 +234,11 @@ export declare function createRun(fields: Pick<BudgetRun, 'rounds'> & Partial<Pi
192
234
  readonly electronVersion?: string;
193
235
  readonly now?: Date;
194
236
  }): BudgetRun;
237
+ /**
238
+ * One run from several, rounds numbered in order, so a check takes the median across all of them.
239
+ * Every run must come from the same platform; the first Electron version, label and bundle win.
240
+ */
241
+ export declare function mergeRuns(runs: readonly BudgetRun[]): BudgetRun;
195
242
  export declare function median(values: readonly number[]): number;
196
243
  /** Nearest-rank percentiles; an empty set reports zeros with `count: 0`. */
197
244
  export declare function summarizeLatencies(samples: readonly number[]): LatencySummary;
@@ -200,6 +247,8 @@ export declare function summarizeLatencies(samples: readonly number[]): LatencyS
200
247
  * OS reader could not see is left out rather than undercounted.
201
248
  */
202
249
  export declare function memoryByType(memory: MemoryMeasurement): Partial<Record<ProcessType, number>>;
250
+ /** Sum of every type the sample holds, or undefined when one of them is unmeasured or none exist. */
251
+ export declare function memoryTotal(memory: MemoryMeasurement, skipGpu: boolean): number | undefined;
203
252
  /** One summarised value: the median over the rounds of one phase. */
204
253
  export interface SummaryRow {
205
254
  readonly id: string;
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAyC,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAEjG,eAAO,MAAM,UAAU,oCAAoC,CAAA;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAA;AAEF,QAAA,MAAM,aAAa;;;;;;iBAMjB,CAAA;AAEF,QAAA,MAAM,aAAa;;;;;;;;;;;;iBAOjB,CAAA;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;iBAGhB,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOrB,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;;;;iBAOrB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYpB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACzD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEjD,2DAA2D;AAC3D,qBAAa,YAAa,SAAQ,KAAK;IAGnC,QAAQ,CAAC,OAAO,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACN,OAAO,EAAE,MAAM;CAK3B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAkBjE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CACpB,GACF,SAAS,CAYX;AAID,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKxD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAO7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAU5F;AAiBD,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;IACvC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,EAAE,CAuGzD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -38,6 +38,8 @@ const memorySchema = z.object({
38
38
  const measurementSchema = z.object({
39
39
  startup: z.object({ firstWindowMs: z.number() }).optional(),
40
40
  memory: memorySchema.optional(),
41
+ // The sample with the most memory outside the GPU during the window, when it was sampled.
42
+ memoryPeak: memorySchema.optional(),
41
43
  mainThread: stallSchema.optional(),
42
44
  ipc: latencySchema.optional(),
43
45
  // Why a requested metric is missing, keyed by `startup` / `memory` / `mainThread` / `ipc`.
@@ -101,6 +103,40 @@ export function createRun(fields) {
101
103
  ...(fields.bundle === undefined ? {} : { bundle: fields.bundle }),
102
104
  };
103
105
  }
106
+ /**
107
+ * One run from several, rounds numbered in order, so a check takes the median across all of them.
108
+ * Every run must come from the same platform; the first Electron version, label and bundle win.
109
+ */
110
+ export function mergeRuns(runs) {
111
+ const [first] = runs;
112
+ if (first === undefined)
113
+ throw new Error('mergeRuns needs at least one run');
114
+ const other = runs.find((run) => run.platform !== first.platform || run.arch !== first.arch);
115
+ if (other !== undefined) {
116
+ throw new Error(`cannot merge runs from ${first.platform}-${first.arch} and ${other.platform}-${other.arch}`);
117
+ }
118
+ let round = 0;
119
+ const electronVersion = runs.find((run) => run.electron_version !== undefined)?.electron_version;
120
+ const label = runs.find((run) => run.label !== undefined)?.label;
121
+ const bundle = runs.find((run) => run.bundle !== undefined)?.bundle;
122
+ return {
123
+ format: RUN_FORMAT,
124
+ schema_version: RUN_SCHEMA_VERSION,
125
+ created_at: first.created_at,
126
+ platform: first.platform,
127
+ arch: first.arch,
128
+ ...(electronVersion === undefined ? {} : { electron_version: electronVersion }),
129
+ ...(label === undefined ? {} : { label }),
130
+ // Each run numbers its rounds from 1; a run's cold and warm launch share a round.
131
+ rounds: runs.flatMap((run) => {
132
+ const offset = round;
133
+ const numbers = run.rounds.map((entry) => entry.round);
134
+ round += numbers.length === 0 ? 0 : Math.max(...numbers);
135
+ return run.rounds.map((entry) => ({ ...entry, round: entry.round + offset }));
136
+ }),
137
+ ...(bundle === undefined ? {} : { bundle }),
138
+ };
139
+ }
104
140
  const round1 = (value) => Math.round(value * 10) / 10;
105
141
  export function median(values) {
106
142
  const sorted = [...values].sort((a, b) => a - b);
@@ -133,7 +169,7 @@ export function memoryByType(memory) {
133
169
  return totals;
134
170
  }
135
171
  /** Sum of every type the sample holds, or undefined when one of them is unmeasured or none exist. */
136
- function memoryTotal(memory, skipGpu) {
172
+ export function memoryTotal(memory, skipGpu) {
137
173
  const types = new Set(memory.processes.map((entry) => entry.type));
138
174
  if (skipGpu)
139
175
  types.delete('gpu');
@@ -149,6 +185,32 @@ function memoryTotal(memory, skipGpu) {
149
185
  }
150
186
  return sum;
151
187
  }
188
+ function pushMemory(prefix, memories, push) {
189
+ // Rounds whose OS reader failed fall back to another metric; the majority one is summarised.
190
+ const counts = new Map();
191
+ for (const memory of memories)
192
+ counts.set(memory.metric, (counts.get(memory.metric) ?? 0) + 1);
193
+ let primary;
194
+ for (const { metric } of memories) {
195
+ if (primary === undefined || (counts.get(metric) ?? 0) > (counts.get(primary) ?? 0)) {
196
+ primary = metric;
197
+ }
198
+ }
199
+ // Working set is always recorded, so a budget may name it on any platform.
200
+ for (const metric of new Set([primary, 'workingSet'])) {
201
+ if (metric === undefined)
202
+ continue;
203
+ const sameMetric = memories
204
+ .filter((memory) => memory.metric === primary)
205
+ .map((memory) => ({ ...memory, metric }));
206
+ const byType = sameMetric.map(memoryByType);
207
+ for (const type of PROCESS_TYPES) {
208
+ push(`${prefix}.${type}`, 'MB', byType.map((totals) => totals[type]), metric);
209
+ }
210
+ push(`${prefix}.totalWithoutGpu`, 'MB', sameMetric.map((memory) => memoryTotal(memory, true)), metric);
211
+ push(`${prefix}.total`, 'MB', sameMetric.map((memory) => memoryTotal(memory, false)), metric);
212
+ }
213
+ }
152
214
  /** Flatten a run into comparable rows (`memory.main`, `ipc.p99Ms`, `bundle.<id>`, ...). */
153
215
  export function summarizeRun(run) {
154
216
  const rows = [];
@@ -170,31 +232,8 @@ export function summarizeRun(run) {
170
232
  });
171
233
  };
172
234
  push('startup.firstWindowMs', 'ms', measurements.map((m) => m.startup?.firstWindowMs));
173
- const memories = measurements.flatMap((m) => (m.memory === undefined ? [] : [m.memory]));
174
- // Rounds whose OS reader failed fall back to another metric; the majority one is summarised.
175
- const counts = new Map();
176
- for (const memory of memories)
177
- counts.set(memory.metric, (counts.get(memory.metric) ?? 0) + 1);
178
- let primary;
179
- for (const { metric } of memories) {
180
- if (primary === undefined || (counts.get(metric) ?? 0) > (counts.get(primary) ?? 0)) {
181
- primary = metric;
182
- }
183
- }
184
- // Working set is always recorded, so a budget may name it on any platform.
185
- for (const metric of new Set([primary, 'workingSet'])) {
186
- if (metric === undefined)
187
- continue;
188
- const sameMetric = memories
189
- .filter((memory) => memory.metric === primary)
190
- .map((memory) => ({ ...memory, metric }));
191
- const byType = sameMetric.map(memoryByType);
192
- for (const type of PROCESS_TYPES) {
193
- push(`memory.${type}`, 'MB', byType.map((totals) => totals[type]), metric);
194
- }
195
- push('memory.totalWithoutGpu', 'MB', sameMetric.map((memory) => memoryTotal(memory, true)), metric);
196
- push('memory.total', 'MB', sameMetric.map((memory) => memoryTotal(memory, false)), metric);
197
- }
235
+ pushMemory('memory', measurements.flatMap((m) => (m.memory === undefined ? [] : [m.memory])), push);
236
+ pushMemory('memoryPeak', measurements.flatMap((m) => (m.memoryPeak === undefined ? [] : [m.memoryPeak])), push);
198
237
  push('mainThread.blockedPercent', '%', measurements.map((m) => m.mainThread?.blockedPercent));
199
238
  push('mainThread.maxStallMs', 'ms', measurements.map((m) => m.mainThread?.maxStallMs));
200
239
  const ipc = measurements.flatMap((m) => (m.ipc !== undefined && m.ipc.count > 0 ? [m.ipc] : []));