Releases: Luckz/procmem
Releases · Luckz/procmem
Release list
v1.2.0
Added
- Process termination (
/kill,/killtree): Terminate individual processes or whole process trees directly fromprocmem, serving as a safer alternative totaskkillor Sysinternalspskill64with built-in resource reclamation accounting and safety barriers.- /kill
<name|PID>: Terminates the specified PID or matching processes without affecting child processes. - /killtree
<name|PID>: Terminates matching roots plus all descendant processes top-down (root first, preventing supervisor/watchdog respawns). - Pre-calculated reclamation: Measures and displays exact physical RAM, commit charge, and CPU time freed upon termination.
- Safety barrier: Terminating by process name strictly requires
/for/force. Omitting/fperforms a non-destructive dry run, printing a full preview table of processes and memory before exiting with code 2. Numeric PID targeting does not require/f. - PID recycling safety: Validates kernel process creation timestamps (
child.created >= parent.created), eliminating PID reuse hazards. - Safety guards: Rejects empty targets (
"") and blocks wildcard-only patterns (*,**) in kill mode to prevent accidental system-wide termination. - Quick usage:
procmem /kill 1234— kill single process by PIDprocmem /killtree 1234— kill process tree by root PIDprocmem /kill /f notepad— kill matching processes by nameprocmem /killtree /f msedge— kill browser tree by nameprocmem --kill -ef notepad— kill exact name with flag bundlingprocmem /killtree msedge— dry-run preview (without/f)
- /kill
- POSIX flag terminator (
--): Supports--to stop flag parsing; all subsequent arguments are treated as positional targets.
Changed
- Column layout: Moved
CPU Time,GPU Ded, andGPU ShrbeforeNamesso all fixed-width numeric metrics are grouped on the left, preventing wide process lists from pushing numbers off-screen. - Kill dry-run preview: Includes numeric PIDs in the preview table when mixed with process name targets.
Fixed
- Empty string validation: Disallowed empty process name arguments (
""), which previously matched every running process on the system. - Flag termination with
--: Fixed--so it properly stops flag parsing per POSIX convention, allowing arguments starting with-or/after--to be targeted as process names.
Removed
- Removed
/ec: Dropped the deprecated/ecoption completely, allowing-ecto correctly unpack as the short-flag bundle-e(exact name) and-c(CPU time).
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Added
- GPU memory metrics (
/gpu,/g,--gpu): Reports Dedicated GPU memory (VRAM) and Shared system GPU
memory for matched processes and descendant trees using Windows Performance Data Helper (pdh.dll).
Evaluated lazily with zero overhead when omitted, requiring zero elevation and zero open process handles. - CPU time metrics (
/cpu,/c,--cpu): Appends total user + kernel CPU execution time formatted asD:HH:MM:SS. - Short flag bundling & Unix CLI syntax: Supports POSIX single-hyphen bundles (e.g.
-cgs,-xcg,-fs),
single flags (-c,-g,-s), and standard GNU-style double-hyphen options (--cpu,--gpu,--strict,
-- exact-tree,--all,--flat,--exact,--short,--help). - Strict tree traversal (
/x,/strict,--strict): Replaces/ecwith/x("eXact tree" mnemonic: exact
root match and exact-name children only), enabling clean single-letter flag bundling. - Short output mode (
/s,/short,-s): Omits theNamescolumn for compact terminal displays.
Changed
- Names column ordering: The root process name is now guaranteed to appear first in the
Namescolumn,
followed alphabetically by unique descendant names. - Summary footer: Displays aggregated CPU time and dedicated/shared GPU memory metrics when enabled.
- Numeric formatting: All process counts and memory figures now use thousands separators for readability.
- Windows slash flags: Windows slashes are strictly single, space-separated flags (
/c /g /s) to prevent
POSIX path conversion traps in Git Bash and MSYS2 environments.
Deprecated
/ecis deprecated in favor of/x//strict(retained as backward-compatible alias), to be removed in v1.2.0.
Full Changelog: v1.0.0...v1.1.0
v1.0.0
procmem is a lightweight, standalone Windows CLI utility that locates processes, identifies root instances, and
aggregates memory metrics (Private Working Set and Commit) across process trees without requiring elevation.
🌟 What's New in v1.0.0
- Process tree aggregation: Identifies topmost root instances for matching processes and rolls up Private
Working Set (RAM MB) and PagefileUsage (Commit MB) across all descendants. - Task Manager semantics: RAM MB metric measures Private Working Set (
WorkingSetPrivateSize), matching Task
Manager's default "Memory" column and eliminating multi-process shared memory inflation. - Non-elevated system queries: Direct integration with
NtQuerySystemInformationprovides full visibility
across user, system, and service processes without UAC prompts. - Root consolidation & cycle detection: Consolidates overlapping root hierarchies and prevents loops on PID 0
or circular parent references. - Multi-target queries: Search multiple processes in a single call (e.g.,
procmem chrome discord edge)
under a shared root hierarchy. - Flexible search modes: Substring (default), prefix (
/p), exact (/e), case-sensitive (/c,/pc,
/ec), and flat listing (/f). - Clean output: Tabular formatting with right-aligned memory metrics, left-aligned process names, and
automatic quoting for executable names containing spaces.
📦 Downloads
procmem.exe: Standalone 64-bit Windows binary (x86-64 / AMD64).procmem-arm64.exe: Standalone ARM64 Windows binary (Snapdragon / Surface Copilot+)..ziparchives: Bundled with README, LICENSE, and CHANGELOG.checksums.txt: SHA-256 hashes for verification.
Full Changelog: https://github.com/Luckz/procmem/commits/v1.0.0