Field notes · measurements before claims
How much useful capacity is left?
Notes on local LLM memory pressure, Apple Silicon, macOS telemetry, and what it costs to observe a Mac under load.
Notes
Explainers and diagnostics, written from the implementation and from readings taken on named hardware. Where a number appears, the machine and macOS build that produced it appear with it.
-
Free Mac system monitors, compared
Activity Monitor, Stats, AirStats, RunCat Neo and Searoom on licence, requirements, coverage and the cost each adds while it runs, with every performance claim attributed to whoever measured it.
-
How much RAM a local model really needs, measured
Five models under one workload: resident cost ran from 88% to 195% of file size, and the file-size heuristic understates the small end by a factor approaching two.
-
What a menu-bar monitor costs, measured in idle wake-ups
About 4.2 wake-ups per second and 0.36% of one core at the default cadence, measured with powermetrics at every sampling interval the app offers.
-
Five models on one Mac: what they cost and what fair thermal state takes back
Resident memory ranged from 88% to 195% of file size, a mixture-of-experts model beat a dense one of similar size by 4.2x, and throughput fell by up to a third without the machine ever leaving fair.
-
Drawing a dashboard in AppKit with no view hierarchy
Searoom's dashboard is one NSView with no view per metric. Why, how partial invalidation keeps redraws small, and how a deterministic dither becomes a cacheable fill.
-
Mac memory pressure: what the number means and when it misleads
Why three tools give three different answers for the same Mac, why free memory near zero is normal, and which number tells you the machine is genuinely short.
-
Mac thermal throttling: how to tell, and what it costs
How to check whether macOS is reducing performance, what the fair thermal state costs in measured throughput, and why fan noise and temperature are both poor evidence.
-
Your Mac slowed down after loading a second model
Most local inference runtimes keep a model resident after the response finishes. Loading a second one means both sets of weights are in memory at once, on a machine with one shared pool.
-
Why your Mac's fans spin up when running a local model
Fans respond to sustained heat, not to load. Local inference is one of the few desktop workloads that stays saturated long enough to matter.
-
Diagnosing thermal throttling during long inference runs
Tokens per second falling during a long run has at least four possible causes, and only one of them is heat. How to tell them apart before changing anything.
-
Unified memory: what the GPU takes from your RAM
On Apple Silicon there is no separate VRAM. The GPU draws from the same pool as everything else, and macOS caps how much of it the GPU may hold.
-
Swap I/O vs swap size: which one predicts a stall
Swap allocation tells you where a Mac has been. Swap throughput tells you where it is. Only one of them correlates with the pause you can feel during local inference.
-
Reading SMC sensors from Swift without a privileged helper
Temperature and fan readings come from an undocumented interface with no stable key set. How to read it honestly, including what to do when the key is not there.
-
What macOS memory pressure actually measures
Three tools reported three different numbers for the same Mac at the same moment. All three were correct. Includes a measured 8 GiB allocation and what the counters did.
References
Maintained product pages, updated in place rather than dated: everything Searoom does, the command line, metric definitions and limitations, and mac performance questions, answered from measurement.
Editorial contract
Every measurement report names the Mac, macOS version, local model, quantization, Searoom version, method, and unavailable sensors. One machine's result is not presented as a universal claim. Where a measurement has not been run, the article says so rather than estimating.