Model the path
Every stage of the data path gets a service-rate ceiling. The slowest one is the primary bottleneck.
Firefly is a deterministic performance diagnostics app. It models how a computer should behave, compares that with what actually happened, and explains where the missing time went.
Δ is the missing time. Where did it go?
Most performance tools measure one component in isolation. Real machines do not fail in isolation. Firefly models the whole path, from source storage through the buses, memory and CPU to the destination, before it judges the result.
Every stage of the data path gets a service-rate ceiling. The slowest one is the primary bottleneck.
From those ceilings and the workload, Firefly computes the expected time, t.
You enter the observed time, t′. The gap between the two is the delta.
The gap is broken into causes, and a plain-language diagnosis comes first, with the full ledger below it.
Why is this slow?
Plain-language cards first: the negotiated PCIe link is below its maximum, the bridge is saturated, thermals explain the delta. The detailed ledger sits right behind them.
Did this change help?
Capture a before, make a change, capture an after. Firefly shows whether the real ceiling moved, or only the noise, and whether a new bottleneck appeared downstream.
What should this machine do?
Build a theoretical machine from named CPUs, GPUs, memory, storage, networks and topologies, and estimate its expected transfer rate before benchmarking anything.
A toy version of Firefly’s idea. Pick a path and see the expected time, the bottleneck, and where each penalty adds time.
Illustrative constants only. They are not Firefly’s catalog values.
Six bounded probes: RAM copy, burst write, read, sustained write, tiny-file queue pressure and a guided DMI/PCH test. Temporary files only.
Best-effort adapters for macOS, Linux and Windows. Serial numbers, UUIDs, MAC and IP addresses are redacted.
npm run probePCIe, Ethernet, USB and bridge ceilings, plus PCI and USB ID matches and Wikidata links, with provenance labels.
npm run catalog:updateExpected time, observed time, delta, bottleneck, warnings and confidence notes, generated locally in the browser.
A Rust command surface in the Tauri app. Deeper counters are gated behind a signed-helper manifest and your consent.
No account, no cloud service for modeling, no kernel driver or root helper installed silently.
Firefly needs Node.js 22 or newer. The desktop app also needs the Rust stable toolchain and the Tauri prerequisites for your OS.
Firefly shows which inputs were measured, probed, sourced, derived or assumed, so you can judge how far to trust each answer. It is open source under Apache-2.0.
View on GitHubRun it locally