Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 01:58
· 207 commits to main since this release

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 health use 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
    StackWalk64 cannot 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