Repository navigation
Releases
Releases · mikevalstar/highscore
v0.4.0 — Performance release
Performance release
Idle CPU drops from ~6.6% to ~0.1% duty cycle by making FSEvents the primary change signal instead of a 5-second polling timer.
What changed
- The refresh timer is now a 5-minute safety-net true-up (down from a 5s poll). FSEvents drives all real-time updates via the existing leading-edge throttle, exactly as before.
- Removed the "Refresh Rate" slider in Settings — this is now an implementation detail rather than a user knob.
- Initial scan on launch is unchanged; overlay responsiveness to new token usage is unchanged (still within ~5s of a file write).
Why
Profiling an idle app revealed the 5s polling timer was triggering the full reader pipeline every tick. The CursorReader alone cost ~310ms per scan because it JSON-parsed all composerData blobs before checking its mtime cache. FSEvents fires 0 times during true idle, so all that work was pure waste.
Notes
If you previously tuned the Refresh Rate slider, your stored value is ignored — there's nothing to migrate.
v0.3.1
v0.3.0
v0.2.0
v0.1.0
Full Changelog: https://github.com/mikevalstar/highscore/commits/v0.1.0