Skip to content

Benchmarks

Parser overhead

Wall time each framework adds to a process that parses nothing, measured on mise use -g node@20 against a shadow of mise's CLI: 211 commands, 711 flags, cold.

usage-rs vs clap

usage-rs2.1µs · ~230× less
clap490µs

Most of clap's 490µs is building and validating its command tree before it can parse. Instructions: 50.9k vs 5.96M. Heap allocations for a bare parse: zero vs 6,560.

usage-go vs cobra, urfave/cli, kong

usage-go~0.15ms · ~6× less
urfave/cli v3~0.75ms
cobra~0.85ms
kong~5.2ms

A do-nothing Go process costs ~0.95ms of runtime startup no parser can touch; these subtract it. Instructions: ~2.7k vs cobra's 2.0M, urfave/cli's 5.6M, kong's 57.9M.

Methodology and raw numbers: go/README.md · tasks/perf-shadow.sh

MIT LicenseCopyright © 2026jdx.dev