vulkro-sf perfdelta
Compares two metadata snapshots for changes that affect runtime
performance and governor-limit headroom. A change set can pass every
security check and still degrade the org: a new DML inside a loop, a
trigger added to a hot object, a SOQL query that lost its selective
filter. perfdelta surfaces those performance regressions in the diff
so they are caught in review, not in a production governor-limit
exception.
Works over two retrieved snapshots on the local machine. No org connection is opened.
Synopsis
vulkro-sf perfdelta --from <path> --to <path> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--from <path> | string | (required) | The baseline snapshot (the performance reference). |
--to <path> | string | (required) | The later snapshot being compared against the baseline. |
--format <fmt> | enum | table | Output format: table (human-readable regression summary) or json (machine-readable delta records, for a CI performance gate). |
Exit codes
0- no performance-relevant regression was found between the two snapshots.1- one or more performance regressions were found and reported.2- error: a snapshot folder is missing or unreadable, parse failure, or internal error. The message names the cause and the next step.
What it does
perfdelta parses both snapshots, computes a performance profile for
each (DML and SOQL placement, trigger fan-out, loop depth, flow
iteration shape), and reports where the later snapshot is worse:
- New loop DML or loop SOQL introduced in the
--tosnapshot. - New triggers added to an object, especially a high-volume one, increasing the per-record execution cost.
- Widened SOQL where a filter was removed or loosened, increasing the row count a query can return.
- Increased flow iteration footprint where a loop now runs more work per iteration.
Each delta names the component, the regression class, and the before and after shape, so a reviewer can decide whether the change is worth its performance cost.
Example
# Performance delta between last release and this one.
vulkro-sf perfdelta --from ./release-1.4 --to ./release-1.5
# JSON for a CI performance gate.
vulkro-sf perfdelta --from ./release-1.4 --to ./release-1.5 \
--format json > perfdelta.json