A macOS CLI tool that reports per-thread P-core/E-core performance counters for any process on Apple Silicon.
For a given PID, it lists every thread with time spent on Performance and Efficiency cores, cycle/instruction counts, and IPC — without requiring sudo.
$ thread-counters `pgrep -x Safari`
| PERFORMANCE | EFFICIENCY |
TID | usr sys cycles insns IPC | usr sys cycles insns IPC |
12801 | 1268.98 240.38 4326344607684 7641724509498 1.8 | 624.59 249.13 1555603231945 1082602205470 0.7 |
12826 | 34.08 27.24 151211531442 167413362041 1.1 | 36.63 53.61 152207562562 82421607487 0.5 | com.apple.NSEventThread
13024 | 13.03 5.99 45761945364 60040662643 1.3 | 8.27 4.61 22711518200 14297786796 0.6 | WebCore: Scrolling
13115 | 54.96 4.52 165496321282 111265239139 0.7 | 62.91 5.03 106277481783 24443002616 0.2 | Log work queue
4828619 | 0.05 0.02 137245479 170221028 1.2 | 1.60 0.50 2672949220 1871335051 0.7 | JavaScriptCore libpas scavenger
macOS ships with sudo taskinfo --threads --threadcounts=1 <pid> which reports basically the same info. This tool however:
- doesn't require
sudoif you're inspecting the process running under the same user - it has machine redable output, which is handy sometimes
brew install bazhenov/tap/thread-counters
thread-counters <PID>
| Flag | Description |
|---|---|
-H, --no-header |
Suppress the header line |
Requires Rust and macOS (Apple Silicon or Intel).
cargo install --path .