Command line
The public entry point is perfchecker_main. It works with an installed package; no checkout is needed.
julia --startup-file=no --project=. -e 'using PerfChecker; exit(perfchecker_main(ARGS))' -- <command> [options]init— write starter suite/workload files (not installation).testitems— list or measure existing TestItems;--listruns none.plan— resolve targets and print or write the plan.preflight— resolve dependency compatibility without measuring.run— preflight, run the plan, write reports.compare— compare two bundles; never fails on a regression.check— compare two bundles; fails when a limit fails.report— export portable JSON and Markdown from one bundle.verify— verify bundle integrity.migrate— rewrite a legacy bundle into a new destination.diagnose,advise— collect analyzer evidence, or explain saved evidence.discover,sync— propose scenarios and CI selections without running target code.machine,estimate— capture machine specs, or estimate from calibration records.julia-campaign— compare one suite across Julia runtimes.network— measure an isolated command tree; the command follows--.capabilities— emit controller/network capabilities as JSON.version— print PerfChecker's version.
Plan and run
julia --startup-file=no --project=. -e 'using PerfChecker; exit(perfchecker_main(ARGS))' -- run \
--suite=perf/suite.jl --profile=ci --reports=perf/results --progress=jsonlProfiles:
quick,ci,historical,release.--run-id=<id>runs exact plan leaves; it cannot be combined with--config.The default run performs a compatibility preflight.
Each JSONL progress line starts with
PERFCHECKER_PROGRESS.
Compare and gate
julia --startup-file=no --project=. -e 'using PerfChecker; exit(perfchecker_main(ARGS))' -- check \
--baseline=perf/bundles/stable --candidate=perf/bundles/change \
--limit=julia.wall.time=0.05 --statistic=julia.wall.time=p99 \
--min-samples=10 --reports=perf/comparisonLimits are relative fractions;
0.05allows a 5% increase for a lower-is-better metric.--statistic=metric=p95selectsmedian,mean,minimum,maximum,p95orp99.When both selected values are exactly zero, an explicit policy passes: the candidate preserved the baseline.
Network
julia --startup-file=no --project=. -e 'using PerfChecker; exit(perfchecker_main(ARGS))' -- network \
--provider=linux_netns --output=perf/network.json -- \
julia --startup-file=no perf/network_workload.jlOn Windows use --provider=wsl2_netns with optional --distribution=<name>. Output is omitted by default; opt in with --include-output=true.
POSIX line continuations (\) do not work in PowerShell; put each command on one line.
