XPerf
LanguagesC#

csharpperf evidence policy

Gate

A rule may be treated as error only with evidence/<RULE>.md + .jsonl and an explicit policy decision. Measured JSONL alone does not auto-escalate. Batch B (2026-10-22) kept package defaults.

Current map

As of 2026-10-22 (Batch B G4).

RuleSeverity (default)EvidenceSmell
cs-list-add-no-capacityoffyes ~1.31×List.Add no Capacity
cs-string-plus-hotoffyes ~3758×string +=
cs-console-hotoffyes ~6×Console in loop
cs-regex-hothintyes ~2.6×Regex.IsMatch
cs-linq-materialize-hothintmeasured (cs-linq-materialize-hot.md + cs-linq-materialize-hot.jsonl); stay hintToList / ToArray / ToDictionary in loop; not corpus-triaged
cs-format-hothintmeasured (cs-format-hot.md + cs-format-hot.jsonl); stay hintstring.Format in loop; not corpus-triaged
cs-json-hothintmeasured (cs-json-hot.md + cs-json-hot.jsonl); stay hintJSON encode/decode in loop; fixed payload only; not corpus-triaged
cs-file-read-hothintmeasured (cs-file-read-hot.md + cs-file-read-hot.jsonl); stay hintFile.ReadAllText / File.Open in a loop; same path only; not corpus-triaged
cs-clock-hothintmeasured (cs-clock-hot.md + cs-clock-hot.jsonl); stay hintStopwatch.GetTimestamp in a loop; not corpus-triaged
cs-field-by-name-hothintmeasured (cs-field-by-name-hot.md + cs-field-by-name-hot.jsonl); stay hintGetField / GetProperty in a loop; not corpus-triaged

On this page