-
Notifications
You must be signed in to change notification settings - Fork 1
Performance Triage
김성주 edited this page May 1, 2026
·
1 revision
Use this checklist when nir-check, benchmarks, or interactive CLI runs get slower or time out without obvious semantic failures.
- Single binary vs corpus: Corpus regressions often indicate manifest-wide hotspots.
-
Platform: macOS vs Linux vs Windows timers differ—confirm apples-to-apples (
releasebuilds).
Capture:
-
rustc --version, commit SHA, feature flags if any. - Exact CLI invocation (
decomp,inventory, automation lane args). - Binary fingerprint (SHA256) and manifest entry (
benchmark/config/).
| Symptom | Likely bucket |
|---|---|
CI spends minutes in cargo build
|
Compile/link regression—inspect dependency graph changes |
| CLI hangs after binary load | Analysis-phase regression—profile hot crates (fission-pcode, loaders) |
Use cargo build -p fission-cli --release timings locally as a coarse compile signal.
Python benchmarks depend on GHIDRA_INSTALL_DIR, pyghidra, and pinned Ghidra vendor paths—misconfiguration often masquerades as slowness (timeouts vs correctness).
Review benchmark/full_benchmark/README.md when interpreting wall-clock deltas.
nir-check exposes structured statistics aligned with NirBuildStats—compare deltas across commits rather than eyeballing pseudocode alone.
See NIR-check and CI.
Include:
- Before/after commits or tags.
- Representative manifests (
smoke_corpus.jsonsnippets). - Hardware basics (CPU generation, thermal headroom when laptop-throttled).