XPerf
LanguagesC#

csharpperf corpus targets

Large trees are not vendored, and the corpus is not shipped with the repo: clone it into any local directory outside the repo and pass that path to the linter.

cd packages/csharpperf/csharpperf-lint && dotnet run -c Release -- <corpus-dir>/<name> --format json --no-fail

Checker: csharpperf-lint. Rules cs-list-add-no-capacity–cs-regex-hot.

Pins

Cloned trees, r1/after → r2 → r3 (redesign). Commit pins were not recorded; record the commit when re-cloning.

TreePinLint (after → r2 → r3)
Newtonsoft.Jsonnot recorded38 → 33 → 3 (cs-regex-hot)
serilognot recorded3 → 1 → 0
Humanizernot recorded24 → 3 → 0

G3 TP/FP triage (2026-10-22 Asia/Shanghai)

Stagen sampleTPFP+DOC+SKIPcorpus-ready?
after/r1650%21.5%no
r2370%0%no (OK-idiom)
r3 (cs-regex-hot)3100%0%yes

r2→r3: demote cs-list-add-no-capacity–cs-console-hot → off; add cs-regex-hot (hint). No G4 JSONL.

2026-10-23 — new hint rules, not triaged

These slugs are hint. They have not been through G2/G3. Pin totals above do not include them. The 2026-10-22 corpus-ready verdict does not cover them.

  • cs-linq-materialize-hot, cs-format-hot — wall-clock JSONL is on disk; default stays hint
  • cs-json-hot — JSONL for one fixed payload (about 1500×); a changing payload cannot be hoisted; still hint