XPerf
Guides

Kit status

Lint entry points, default severities, and corpus notes for each package. Rule IDs are slugs only. Counts match each kit’s docs/rule-ids.md (tombstones excluded). Heuristic hits are review prompts, not speedups.

All 19 kits are corpus-ready under the AGENT.md G3 gate for the rule set triaged on 2026-10-22 (Asia/Shanghai). Hint rules added 2026-10-23 are not part of that verdict. Several now have a microbench and stay hint. Rules whose fair rerun stayed near 1× were removed. No corpus triage on the new slugs.

PackageLintActiveNotes
zperfzperf-lint31Zig 0.17+. G3/r4 demoted OK-idiom mass rules; several defaults remain on (e.g. zp-page-allocator-small, zp-broad-runtime-safety). zp-alloc-print-hot is a hint for an unchanged format string.
cperfcperf-lint12C11 checker + presets. cp-alloc-hot / cp-realloc-grow-one error; strlen, sprintf, fopen, clock, wide-bool-flag, regcomp, alloca-in-loop, and large by-value struct hints; cp-printf-hot / cp-strcat-hot off under default app preset. The 2026-10-23 hints have a microbench and are not part of the corpus verdict.
jsperfjsperf-lint11Pure Node ≥18, zero npm deps. jp-delete-array-hole error; map-filter / regex-ctor / JSON / DOM-query / Intl.DateTimeFormat / readFileSync / clock hints; alloc / console defaults off under app preset. jp-string-plus-in-loop removed (push + join was not ~2×).
jvmperfjvmperf-lint29Java (Gradle). Pin JDK 21 for tests. Mix of error / hint / off after G3/G4; see kit evidence policy.
goperfgoperf-lint10gp-append-nil-slice / gp-defer-hot plus regexp / JSON / reflect-name-lookup hints; gp-make-hot–gp-fmt-hot off. time.Parse was removed.
pyperfpyperf-lint6pp-list-plus-rebind plus JSON / deepcopy hints; pp-str-plus-hot / pp-print-hot off. re.compile and datetime.strptime were removed.
swiftperfswiftperf-lint8sp-array-no-reserve hint (small builders about 5×; one large fill about 1.6×). Print in a loop stays off (about 10× to /dev/null). Force-unwrap, string +=, and map/joined were removed. Date-formatter / JSON-decode / NSRegularExpression hints remain. The 2026-10-23 hints are not part of the corpus verdict. Text-lint path if Swift SDK absent.
arktsperfarktsperf-lint4Node lint over .ets/.ts/.js. at-includes-hot / at-json-hot hint; alloc / console defaults off.
cppperfcppperf-lint6Dedicated C++17 (≠ cperf). regex, endl, clock, ifstream, const-by-value, and vector-bool hints. String append, string-stream, and several jitter ids removed. Short const strings stay near 1× and are still hinted.
csharpperfcsharpperf-lint10Needs dotnet. cs-regex-hot, LINQ materialize, string.Format, and JSON hints; list-add / string-plus / console off.
phpperfphpperf-lint3ph-array-merge-rebind error (G4); ph-string-dot-hot off; ph-echo-hot hint.
rubyperfrubyperf-lint6regexp / JSON / file-read hints; string-plus / array-plus / puts off. Date.parse and Hash#merge were removed.
rustperfrustperf-lint7rs-format-rebind-hot error; println / collect / regex hint; rs-alloc-hot off. Amortized +=, Vec::new plus push, and HashMap::new in a loop were removed.
kotlinperfkotlinperf-lint3Kotlin-first (≠ jvmperf JMH). All three rules off by default; one jitter id removed.
objcperfobjcperf-lint8Objective-C (≠ swiftperf). oc-nsstring-append-hot / oc-nslog-hot off; date-formatter, JSON, and regular-expression hints. Two jitter ids removed.
dartperfdartperf-lint4dt-growable-add-empty hint; list-add / string-plus / print defaults off.
luaperfluaperf-lint3lu-string-concat-hot error (G4); lu-table-insert-hot off; lu-print-hot hint.
beamperfbeamperf-lint4Elixir + Erlang. list-concat / map-merge / enum-chain hint; be-io-puts-hot off. One jitter id removed.
nimperfnimperf-lint4Needs nim. nm-seq-no-capacity hint; seq-add / string / echo defaults off.

No fabricated publish URL.

Historical numeric → slug map (CLI does not accept numerics): rule-id-map.md.