Repository navigation
v0.4.0
Added
- Maintain a fixed-capacity 15-minute history of completed ticks and one-second
process/system CPU observations even when no profiler is running. - Calculate independent 5-second, 10-second, 1-minute, 5-minute, and 15-minute TPS
windows plus query-time MSPT distributions and rolling CPU usage. - Populate profile metadata and per-second Viewer windows from the shared history,
including exact time bounds, CPU, TPS, MSPT median/max, and low-cost player counts. - Report real rolling TPS, MSPT distributions, and process/system CPU from
/spark tps, with the available history duration shown during warm-up.
Changed
- Share one cross-platform process CPU normalization rule and keep allocation,
sorting, and percentile work out of the per-tick statistics path. - Omit unavailable per-second entity and chunk fields instead of copying a final
world snapshot or serializing zero as though it were an observation. - Make
/spark healthuse the shared performance snapshot and consistently report
available process RSS/virtual memory, threads, physical memory, swap/page-file,
disk, uptime, players, CPU, and OS resources on Windows and Linux. - Track resource-field availability explicitly and omit failed system/profile
queries rather than presenting synthetic zero values.
Fixed
- Stop copying one TPS/CPU average across every rolling field or labeling MSPT
means and maxima as median, minimum, and p95 values in profile metadata. - Preserve the suspended thread's top instruction address on Windows when
StackWalk64cannot unwind a caller, instead of discarding the whole sample. - Report reserved/committed process virtual address space on Windows instead of
incorrectly labeling private commit charge as virtual memory. - Retry Windows hook removal within the existing bounded shutdown interval when
a concurrently starting or exiting thread temporarily rejects context capture.
Full Changelog: v0.3.2...v0.4.0