XPerf

XPerf

XPerf helps you find real performance smells across 19 languages — guides plus heuristic linters that stay honest: a hit means “look here,” not “this will be faster,” until paired fixtures and a measured before/after say otherwise.

Docs site: lbb00.github.io/xperf. Rule IDs are semantic slugs (~169 active).

Languages

PackageLanguageActive rules
zperfZig31
cperfC11/C17 (light C++)12
jsperfJavaScript / TypeScript (V8/Node)11
jvmperfJava (JVM)29
goperfGo10
pyperfPython6
swiftperfSwift8
arktsperfArkTS (HarmonyOS; lint via Node)4
cppperfC++17 (separate from cperf)6
csharpperfC#10
phpperfPHP3
rubyperfRuby7
rustperfRust7
kotlinperfKotlin (≠ jvmperf JMH)3
objcperfObjective-C (≠ swiftperf)8
dartperfDart4
luaperfLua3
beamperfElixir + Erlang (BEAM)4
nimperfNim4

Versions and defaults: docs/kits.md.

Quick start

cd packages/zperf/zperf-lint
zig build -Doptimize=ReleaseFast
./zig-out/bin/zperf-lint ../examples

Needs Zig 0.17+. Other languages: that kit’s README, or docs/quickstart.md. bash scripts/sync-check.sh checks that every package directory is present. Tagged releases ship source kits only — docs/release.md.

Docs

Layout

docs/        Shared docs
packages/    One kit per language
scripts/     sync-check, doc-check, build-guides, privacy-check, pack-source-dist

Zig’s build.zig lives only under packages/zperf/zperf-lint/.

License

MIT — LICENSE.

This tree was written end-to-end by Grok Bot. Humans set requirements and reviewed the results.