@framedash/cli 0.1.4 → 0.1.5
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/commands/perf-diff.d.ts.map +1 -1
- package/dist/commands/perf-diff.js +20 -7
- package/dist/commands/perf-diff.js.map +1 -1
- package/dist/commands/run-profile-test.d.ts.map +1 -1
- package/dist/commands/run-profile-test.js +14 -4
- package/dist/commands/run-profile-test.js.map +1 -1
- package/dist/lib/perf-diff-eval.d.ts +21 -5
- package/dist/lib/perf-diff-eval.d.ts.map +1 -1
- package/dist/lib/perf-diff-eval.js +69 -7
- package/dist/lib/perf-diff-eval.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perf-diff.d.ts","sourceRoot":"","sources":["../../src/commands/perf-diff.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"perf-diff.d.ts","sourceRoot":"","sources":["../../src/commands/perf-diff.ts"],"names":[],"mappings":"AAaA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsH5D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildBuildComparePath } from "@framedash/api-client";
|
|
2
2
|
import { formatOutput } from "../lib/formatters.js";
|
|
3
3
|
import { error, log, success } from "../lib/logger.js";
|
|
4
|
-
import { evaluateRegression, formatMetricDiff, isRegressionMetric, } from "../lib/perf-diff-eval.js";
|
|
4
|
+
import { evaluateRegression, formatMetricDiff, isRegressionMetric, loadTimeMapConflict, } from "../lib/perf-diff-eval.js";
|
|
5
5
|
import { runCommand } from "../lib/run-command.js";
|
|
6
6
|
export async function perfDiff(args) {
|
|
7
7
|
await runCommand({
|
|
@@ -36,11 +36,18 @@ export async function perfDiff(args) {
|
|
|
36
36
|
if (values.metric !== undefined) {
|
|
37
37
|
const raw = values.metric.trim();
|
|
38
38
|
if (!isRegressionMetric(raw)) {
|
|
39
|
-
error(`Invalid --metric '${raw}'. Allowed: frame_time, memory, gpu_time`);
|
|
39
|
+
error(`Invalid --metric '${raw}'. Allowed: frame_time, memory, gpu_time, io.read_bytes, io.read_time_ms, io.read_ops, load_time_ms`);
|
|
40
40
|
process.exit(1);
|
|
41
41
|
}
|
|
42
42
|
metric = raw;
|
|
43
43
|
}
|
|
44
|
+
// map_load rows have an empty map_id; a map-filtered load_time_ms compare
|
|
45
|
+
// returns no rows and would wrongly trip the fail-closed gate.
|
|
46
|
+
const mapConflict = loadTimeMapConflict(metric, values.map);
|
|
47
|
+
if (mapConflict) {
|
|
48
|
+
error(mapConflict);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
44
51
|
let thresholdPct = 0;
|
|
45
52
|
if (values.threshold !== undefined) {
|
|
46
53
|
thresholdPct = Number(values.threshold);
|
|
@@ -93,8 +100,9 @@ export async function perfDiff(args) {
|
|
|
93
100
|
}
|
|
94
101
|
const HELP = `Usage: framedash perf-diff --baseline <id> --candidate <id> [options]
|
|
95
102
|
|
|
96
|
-
Compare two builds' performance (P50/P95 frame time, memory, GPU time
|
|
97
|
-
with --fail-on-regression, exit
|
|
103
|
+
Compare two builds' performance (P50/P95 frame time, memory, GPU time, disk io.*
|
|
104
|
+
read metrics, and map/level load time) and, with --fail-on-regression, exit
|
|
105
|
+
non-zero when the candidate regressed -- so a CI
|
|
98
106
|
job can gate a merge on a build-over-build performance regression. Build IDs are
|
|
99
107
|
whatever your SDK reported as build_id (set it from CI, e.g. the git SHA); list
|
|
100
108
|
them with 'framedash builds'.
|
|
@@ -104,14 +112,19 @@ Required:
|
|
|
104
112
|
--candidate <id> New build_id under test
|
|
105
113
|
|
|
106
114
|
Options:
|
|
107
|
-
--metric <name> Gate on one metric only: frame_time, memory, gpu_time
|
|
108
|
-
|
|
115
|
+
--metric <name> Gate on one metric only: frame_time, memory, gpu_time,
|
|
116
|
+
io.read_bytes, io.read_time_ms, io.read_ops, load_time_ms
|
|
117
|
+
(default: all). Lower is better; a positive % is a
|
|
118
|
+
regression. io.* need disk-IO tracking enabled in the SDK;
|
|
119
|
+
load_time_ms needs SDK map-load timing (BeginMapLoad/EndMapLoad).
|
|
109
120
|
--threshold <pct> Tolerate a regression up to this percent (default: 0 =
|
|
110
121
|
any worsening fails). e.g. --threshold 5 ignores <=5% noise.
|
|
111
122
|
--fail-on-regression Exit 1 if a regression beyond the threshold is found
|
|
112
123
|
(otherwise perf-diff only reports and exits 0)
|
|
113
124
|
--days <n> Time period in days: 7, 14, 30, 90 (default: 30)
|
|
114
|
-
--map <id> Restrict the comparison to one map
|
|
125
|
+
--map <id> Restrict the comparison to one map. NOT valid with
|
|
126
|
+
--metric load_time_ms (map_load rows carry an empty
|
|
127
|
+
map_id; use the dashboard per-map breakdown instead).
|
|
115
128
|
--platform <name> Restrict the comparison to one platform
|
|
116
129
|
--api-key <key> API key (or FRAMEDASH_API_KEY env)
|
|
117
130
|
--project-id <uuid> Project ID (or FRAMEDASH_PROJECT_ID env)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perf-diff.js","sourceRoot":"","sources":["../../src/commands/perf-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAEN,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"perf-diff.js","sourceRoot":"","sources":["../../src/commands/perf-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-profile-test.d.ts","sourceRoot":"","sources":["../../src/commands/run-profile-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-profile-test.d.ts","sourceRoot":"","sources":["../../src/commands/run-profile-test.ts"],"names":[],"mappings":"AA4aA;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJlE"}
|
|
@@ -4,7 +4,7 @@ import { buildBuildComparePath, buildBuildsPath } from "@framedash/api-client";
|
|
|
4
4
|
import { createClient } from "../lib/create-client.js";
|
|
5
5
|
import { formatOutput } from "../lib/formatters.js";
|
|
6
6
|
import { error, log, success, warn } from "../lib/logger.js";
|
|
7
|
-
import { evaluateRegression, formatMetricDiff, isRegressionMetric, } from "../lib/perf-diff-eval.js";
|
|
7
|
+
import { evaluateRegression, formatMetricDiff, isRegressionMetric, loadTimeMapConflict, } from "../lib/perf-diff-eval.js";
|
|
8
8
|
import { runCommand } from "../lib/run-command.js";
|
|
9
9
|
import { buildEventCount, buildSessionEnv, planTreeKill, resolveProfileIdentity, SESSION_ENV_KEYS, validateSeconds, waitForIngest, } from "../lib/run-profile-test-lib.js";
|
|
10
10
|
const DEFAULT_INGEST_TIMEOUT_S = 180;
|
|
@@ -60,11 +60,18 @@ function resolveGateOptions(values, candidateBuildId) {
|
|
|
60
60
|
if (values.metric !== undefined) {
|
|
61
61
|
const raw = values.metric.trim();
|
|
62
62
|
if (!isRegressionMetric(raw)) {
|
|
63
|
-
error(`Invalid --metric '${raw}'. Allowed: frame_time, memory, gpu_time`);
|
|
63
|
+
error(`Invalid --metric '${raw}'. Allowed: frame_time, memory, gpu_time, io.read_bytes, io.read_time_ms, io.read_ops, load_time_ms`);
|
|
64
64
|
process.exit(1);
|
|
65
65
|
}
|
|
66
66
|
metric = raw;
|
|
67
67
|
}
|
|
68
|
+
// map_load rows have an empty map_id; a map-filtered load_time_ms gate returns
|
|
69
|
+
// no rows and would wrongly trip the fail-closed check.
|
|
70
|
+
const mapConflict = loadTimeMapConflict(metric, values.map);
|
|
71
|
+
if (mapConflict) {
|
|
72
|
+
error(mapConflict);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
68
75
|
let thresholdPct = 0;
|
|
69
76
|
if (values.threshold !== undefined) {
|
|
70
77
|
thresholdPct = Number(values.threshold);
|
|
@@ -482,11 +489,14 @@ id is not satisfied by old data):
|
|
|
482
489
|
|
|
483
490
|
Regression gate (runs only when --baseline is set):
|
|
484
491
|
--baseline <id> Known-good build_id to compare the candidate against
|
|
485
|
-
--metric <name> Gate on one metric: frame_time, memory, gpu_time
|
|
492
|
+
--metric <name> Gate on one metric: frame_time, memory, gpu_time,
|
|
493
|
+
io.read_bytes, io.read_time_ms, io.read_ops, load_time_ms
|
|
494
|
+
(default: all)
|
|
486
495
|
--threshold <pct> Tolerate a regression up to this percent (default: 0)
|
|
487
496
|
--fail-on-regression Exit 1 on a regression beyond the threshold (needs --baseline)
|
|
488
497
|
--days <n> Comparison window in days: 7, 14, 30, 90 (default: 30)
|
|
489
|
-
--map <id> Restrict the comparison to one map
|
|
498
|
+
--map <id> Restrict the comparison to one map. NOT valid with
|
|
499
|
+
--metric load_time_ms (map_load rows carry an empty map_id).
|
|
490
500
|
--platform <name> Restrict the comparison to one platform
|
|
491
501
|
|
|
492
502
|
Global:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-profile-test.js","sourceRoot":"","sources":["../../src/commands/run-profile-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-profile-test.js","sourceRoot":"","sources":["../../src/commands/run-profile-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,24 @@
|
|
|
4
4
|
* API response (apps/web .../builds/compare); the CLI cannot import the web
|
|
5
5
|
* app's types, so they are restated here.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Lower-is-better performance metrics perf-diff can gate on. Mirrors the web
|
|
9
|
+
* app's RegressionMetric registry (apps/web .../regression-types.ts): the core
|
|
10
|
+
* three fixed perf fields, the disk io.* metrics carried in the events_v2 metrics
|
|
11
|
+
* map on perf_heartbeat, and load_time_ms carried in the metrics map on map_load
|
|
12
|
+
* events (appended LAST so existing io.* wire positions are unchanged).
|
|
13
|
+
*/
|
|
14
|
+
export type RegressionMetric = "frame_time" | "memory" | "gpu_time" | "io.read_bytes" | "io.read_time_ms" | "io.read_ops" | "load_time_ms";
|
|
9
15
|
export declare const REGRESSION_METRICS: readonly RegressionMetric[];
|
|
10
16
|
export declare function isRegressionMetric(value: string): value is RegressionMetric;
|
|
17
|
+
/**
|
|
18
|
+
* Guard against `--metric load_time_ms` combined with `--map`. map_load events
|
|
19
|
+
* carry an EMPTY map_id, so a map-filtered comparison has zero load_time_ms rows
|
|
20
|
+
* -- the gate would then fail-closed on "no comparable data" and mislead the user.
|
|
21
|
+
* Returns an error message when the combination is invalid, else null. Shared by
|
|
22
|
+
* `perf-diff` and `run-profile-test`, which both forward `--metric` and `--map`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function loadTimeMapConflict(metric: string | undefined, map: string | undefined): string | null;
|
|
11
25
|
/** One metric's diff, as returned by the builds/compare API. */
|
|
12
26
|
export interface ApiMetricDiff {
|
|
13
27
|
metric: RegressionMetric;
|
|
@@ -48,9 +62,11 @@ export interface EvaluateOptions {
|
|
|
48
62
|
/**
|
|
49
63
|
* Decide whether a build comparison should fail a CI gate. All regression
|
|
50
64
|
* metrics are lower-is-better, so a positive diffPct (candidate P50 above
|
|
51
|
-
* baseline) is a regression. A null diffPct
|
|
52
|
-
* unavailable on the platform, e.g. GPU timing)
|
|
53
|
-
* skipped --
|
|
65
|
+
* baseline) is a regression. A null diffPct usually means "not comparable" (no
|
|
66
|
+
* baseline data, or a metric unavailable on the platform, e.g. GPU timing) and is
|
|
67
|
+
* skipped -- EXCEPT a valid zero baseline (diffPct is null because percent change
|
|
68
|
+
* from 0 is undefined): 0 -> positive is an infinite regression that fails
|
|
69
|
+
* regardless of threshold, and 0 -> 0 is comparable-but-unchanged.
|
|
54
70
|
*/
|
|
55
71
|
export declare function evaluateRegression(comparison: ApiBuildComparison, options?: EvaluateOptions): RegressionVerdict;
|
|
56
72
|
/** A one-line human summary of a single metric diff (for CI logs). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perf-diff-eval.d.ts","sourceRoot":"","sources":["../../src/lib/perf-diff-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"perf-diff-eval.d.ts","sourceRoot":"","sources":["../../src/lib/perf-diff-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACzB,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,cAAc,CAAC;AAElB,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAQzD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GAAG,SAAS,GACrB,MAAM,GAAG,IAAI,CASf;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qFAAqF;IACrF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,KAAK,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IACjC,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,qFAAqF;IACrF,SAAS,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAqCD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,kBAAkB,EAC9B,OAAO,GAAE,eAAoB,GAC3B,iBAAiB,CAoBnB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAezD"}
|
|
@@ -4,16 +4,71 @@
|
|
|
4
4
|
* API response (apps/web .../builds/compare); the CLI cannot import the web
|
|
5
5
|
* app's types, so they are restated here.
|
|
6
6
|
*/
|
|
7
|
-
export const REGRESSION_METRICS = [
|
|
7
|
+
export const REGRESSION_METRICS = [
|
|
8
|
+
"frame_time",
|
|
9
|
+
"memory",
|
|
10
|
+
"gpu_time",
|
|
11
|
+
"io.read_bytes",
|
|
12
|
+
"io.read_time_ms",
|
|
13
|
+
"io.read_ops",
|
|
14
|
+
"load_time_ms",
|
|
15
|
+
];
|
|
8
16
|
export function isRegressionMetric(value) {
|
|
9
17
|
return REGRESSION_METRICS.includes(value);
|
|
10
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Guard against `--metric load_time_ms` combined with `--map`. map_load events
|
|
21
|
+
* carry an EMPTY map_id, so a map-filtered comparison has zero load_time_ms rows
|
|
22
|
+
* -- the gate would then fail-closed on "no comparable data" and mislead the user.
|
|
23
|
+
* Returns an error message when the combination is invalid, else null. Shared by
|
|
24
|
+
* `perf-diff` and `run-profile-test`, which both forward `--metric` and `--map`.
|
|
25
|
+
*/
|
|
26
|
+
export function loadTimeMapConflict(metric, map) {
|
|
27
|
+
if (metric === "load_time_ms" && typeof map === "string" && map.trim().length > 0) {
|
|
28
|
+
return ("--metric load_time_ms cannot be combined with --map: map_load events carry an " +
|
|
29
|
+
"empty map_id, so a map-filtered comparison has no load-time data. Drop --map, or " +
|
|
30
|
+
"use the dashboard's per-map load-time breakdown (grouped by map name) instead.");
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Metrics whose zero is a VALID collected value: the map-carried io.* read
|
|
36
|
+
* windows (no reads -> 0, distinct from an absent metric) and load_time_ms (an
|
|
37
|
+
* instant/cached load reads 0, distinct from a build with no map_load samples).
|
|
38
|
+
* The fixed perf fields (frame_time/memory/gpu_time) cannot be 0 when a heartbeat
|
|
39
|
+
* is recorded, so a zero baseline there is degenerate and stays "not comparable"
|
|
40
|
+
* -- unchanged behavior. Mirrors the web ZERO_BASELINE_MEANINGFUL registry flag.
|
|
41
|
+
*/
|
|
42
|
+
function isZeroMeaningfulMetric(metric) {
|
|
43
|
+
return metric.startsWith("io.") || metric === "load_time_ms";
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A zero-baseline row for a zero-meaningful metric with a finite candidate P50. A
|
|
47
|
+
* zero baseline carries diffPct: null (percent change from 0 is undefined) but
|
|
48
|
+
* must still be comparable.
|
|
49
|
+
*/
|
|
50
|
+
function isZeroBaseline(d) {
|
|
51
|
+
return (isZeroMeaningfulMetric(d.metric) &&
|
|
52
|
+
d.baselineP50 === 0 &&
|
|
53
|
+
typeof d.candidateP50 === "number" &&
|
|
54
|
+
Number.isFinite(d.candidateP50));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A zero baseline that moved to a positive candidate: an "infinite" worsening
|
|
58
|
+
* (0 -> N) that no finite threshold can tolerate, so it always fails the gate.
|
|
59
|
+
* All regression metrics are lower-is-better, so any positive candidate regresses.
|
|
60
|
+
*/
|
|
61
|
+
function isZeroBaselineRegression(d) {
|
|
62
|
+
return isZeroBaseline(d) && d.candidateP50 > 0;
|
|
63
|
+
}
|
|
11
64
|
/**
|
|
12
65
|
* Decide whether a build comparison should fail a CI gate. All regression
|
|
13
66
|
* metrics are lower-is-better, so a positive diffPct (candidate P50 above
|
|
14
|
-
* baseline) is a regression. A null diffPct
|
|
15
|
-
* unavailable on the platform, e.g. GPU timing)
|
|
16
|
-
* skipped --
|
|
67
|
+
* baseline) is a regression. A null diffPct usually means "not comparable" (no
|
|
68
|
+
* baseline data, or a metric unavailable on the platform, e.g. GPU timing) and is
|
|
69
|
+
* skipped -- EXCEPT a valid zero baseline (diffPct is null because percent change
|
|
70
|
+
* from 0 is undefined): 0 -> positive is an infinite regression that fails
|
|
71
|
+
* regardless of threshold, and 0 -> 0 is comparable-but-unchanged.
|
|
17
72
|
*/
|
|
18
73
|
export function evaluateRegression(comparison, options = {}) {
|
|
19
74
|
// Clamp a non-finite or negative threshold to 0 (the strictest gate) so a bad
|
|
@@ -28,16 +83,23 @@ export function evaluateRegression(comparison, options = {}) {
|
|
|
28
83
|
// which the caller treats as "nothing comparable" -> fail-closed. `typeof ===
|
|
29
84
|
// "number"` (not `!== null`) also skips an undefined/missing diffPct safely.
|
|
30
85
|
const diffs = Array.isArray(comparison?.diffs) ? comparison.diffs : [];
|
|
31
|
-
const
|
|
32
|
-
const
|
|
86
|
+
const scoped = diffs.filter((d) => !options.metric || d.metric === options.metric);
|
|
87
|
+
const evaluated = scoped.filter((d) => typeof d.diffPct === "number" || isZeroBaseline(d));
|
|
88
|
+
const offenders = evaluated.filter((d) => isZeroBaselineRegression(d) || (typeof d.diffPct === "number" && d.diffPct > threshold));
|
|
33
89
|
return { failed: offenders.length > 0, offenders, evaluated };
|
|
34
90
|
}
|
|
35
91
|
/** A one-line human summary of a single metric diff (for CI logs). */
|
|
36
92
|
export function formatMetricDiff(d) {
|
|
37
93
|
// `typeof !== "number"` covers a null OR an undefined/missing diffPct, so the
|
|
38
94
|
// toFixed() below can never throw on a malformed row.
|
|
39
|
-
if (typeof d.diffPct !== "number")
|
|
95
|
+
if (typeof d.diffPct !== "number") {
|
|
96
|
+
// A zero baseline going positive has no percent (0 -> N) but is a real
|
|
97
|
+
// regression, so report the raw movement instead of "no comparable data".
|
|
98
|
+
if (isZeroBaselineRegression(d)) {
|
|
99
|
+
return `${d.metric}: baseline 0 -> ${fmtValue(d.candidateP50)} (regression from zero)`;
|
|
100
|
+
}
|
|
40
101
|
return `${d.metric}: no comparable data`;
|
|
102
|
+
}
|
|
41
103
|
const sign = d.diffPct >= 0 ? "+" : "";
|
|
42
104
|
return `${d.metric}: ${sign}${d.diffPct.toFixed(1)}% (P50 ${fmtValue(d.baselineP50)} -> ${fmtValue(d.candidateP50)})`;
|
|
43
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perf-diff-eval.js","sourceRoot":"","sources":["../../src/lib/perf-diff-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"perf-diff-eval.js","sourceRoot":"","sources":["../../src/lib/perf-diff-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC9D,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,eAAe;IACf,iBAAiB;IACjB,aAAa;IACb,cAAc;CACd,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAClC,MAA0B,EAC1B,GAAuB;IAEvB,IAAI,MAAM,KAAK,cAAc,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,OAAO,CACN,gFAAgF;YAChF,mFAAmF;YACnF,gFAAgF,CAChF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAuCD;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,MAAc;IAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,cAAc,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,CAAgB;IACvC,OAAO,CACN,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,WAAW,KAAK,CAAC;QACnB,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;QAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAC/B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,CAAgB;IACjD,OAAO,cAAc,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,YAAuB,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CACjC,UAA8B,EAC9B,UAA2B,EAAE;IAE7B,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,WAAW;IACX,MAAM,SAAS,GACd,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAK,OAAO,CAAC,YAAuB,IAAI,CAAC;QAC7E,CAAC,CAAE,OAAO,CAAC,YAAuB;QAClC,CAAC,CAAC,CAAC,CAAC;IACN,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,CAC9F,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC/D,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,CAAgB;IAChD,8EAA8E;IAC9E,sDAAsD;IACtD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,CAAC,MAAM,mBAAmB,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC;QACxF,CAAC;QACD,OAAO,GAAG,CAAC,CAAC,MAAM,sBAAsB,CAAC;IAC1C,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CACjG,CAAC,CAAC,YAAY,CACd,GAAG,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,KAAgC;IACjD,uEAAuE;IACvE,oDAAoD;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|