Skip to content

Tags: psmux/pstop

Tags

v0.5.4

Toggle v0.5.4's commit message
fix: register SetConsoleCtrlHandler to prevent zombie processes on te…

…rminal close

Without a console control handler, closing the terminal window/tab while pstop
is running in raw mode leaves zombie pstop.exe and htop.exe processes in the
process list indefinitely. The crossterm event loop hangs on a dead console
handle and never terminates.

Now registers a handler for CTRL_C, CTRL_BREAK, CTRL_CLOSE, CTRL_LOGOFF, and
CTRL_SHUTDOWN events that calls std::process::exit(0), guaranteeing clean
termination regardless of how the terminal is closed.

Bumps version to 0.5.4.

v0.5.3

Toggle v0.5.3's commit message
chore: bump version to 0.5.3

v0.5.2

Toggle v0.5.2's commit message
chore: bump version to 0.5.2

v0.5.1

Toggle v0.5.1's commit message
v0.5.1: htop UI parity - real CPU fracs, column layout, alignment fix…

…es, reset to defaults

v0.5.0

Toggle v0.5.0's commit message
v0.5.0: 3.6x faster startup — native CPU monitor, parallel init, lazy…

… subsystems

Performance:
- Replace sysinfo PDH-based CPU monitoring with native NtQuerySystemInformation
  (SystemProcessorPerformanceInformation) — eliminates ~155ms PDH initialization
- Collector::new() drops from ~220ms to <1ms
- Total data-ready time: ~460ms -> ~128ms (3.6x faster)
- Three-phase startup: skeleton UI (<1ms) -> CPU/memory bars (~2ms) -> full process table (~128ms)
- Skip unnecessary sysinfo disk_usage/exe collection via ProcessRefreshKind
- Lazy-init Networks (deferred to first use, saves ~12ms)
- Remove redundant 10ms sleep and duplicate refresh calls from init
- Collector spawned at top of main() to overlap with terminal setup
- GPU PDH counters lazy-initialized on first GPU tab access
- CPU brand/frequency read from registry (one-time, <1ms)

Technical:
- New NativeCpuMonitor in winapi.rs using NtQuerySystemInformation for per-core CPU data
- Per-core idle/kernel/user time deltas computed natively (<1ms per sample)
- Added Win32_System_Registry feature for CPU info registry reads
- Verbose benchmark mode (--bench -v) with sub-component timing breakdown
- Build profile: codegen-units=1, panic=abort for better optimization

v0.4.0

Toggle v0.4.0's commit message
v0.4.0: Fix meter customization (issue #5), implement stub features

- Fix F2 Setup > Meters: Available Meters panel is now fully interactive
  with Enter to add, Delete to remove, F7/F8 to reorder meters
- Meter configuration persists to pstoprc (left_meters/right_meters)
- Header renders dynamically from configured meter lists
- Fix show_tree_by_default: now applied on config load
- Fix GPU Command column sort: sorts by process name instead of PID
- Implement update_process_names: caches process names per PID when
  toggled off, refreshes when on (reduces overhead)
- Bump version to 0.4.0

Closes #5

v0.3.5

Toggle v0.3.5's commit message
fix: handle already-published and moderation errors in release workflow

v0.3.4

Toggle v0.3.4's commit message
chore: bump version to 0.3.4

v0.3.3

Toggle v0.3.3's commit message
chore: bump version to 0.3.3

v0.3.2

Toggle v0.3.2's commit message
v0.3.2: Fix misaligned Mem/Swp/Net header bars (issue #3)

htop-exact bar rendering: text now displayed inside brackets,
right-aligned, matching htop's BarMeterMode_draw algorithm.

- New draw_htop_bar helper replicates htop's bar meter rendering
- CPU/Mem/Swp/Net/GPU/VMem bars: text inside brackets, not outside
- Added 1-char separator column between left and right header panels
- header_margin now applies vertical padding (1 row top/bottom) like htop

Closes #3