Skip to main content

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

FlagTypeDefaultDescription
--from <path>string(required)The baseline snapshot (the performance reference).
--to <path>string(required)The later snapshot being compared against the baseline.
--format <fmt>enumtableOutput 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 --to snapshot.
  • 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