Tags: psmux/pstop
Tags
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.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: 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.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
PreviousNext