#[non_exhaustive]pub struct ProcessGroupStats {
pub active_process_count: usize,
pub total_cpu_time: Option<Duration>,
pub peak_memory_bytes: Option<u64>,
}stats only.Expand description
A snapshot of a process group’s resource usage.
total_cpu_time and peak_memory_bytes are None when the platform can’t
report them — notably the POSIX process-group mechanism (no cgroup
accounting), i.e. macOS/BSD and the Linux fallback.
Non-exhaustive: a read-only snapshot the crate produces — new metrics can be added without a breaking change.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.active_process_count: usizeNumber of live processes currently in the group.
Under the POSIX process-group mechanism (Mechanism::ProcessGroup
— macOS/BSD and the Linux fallback) this counts live process groups
rather than individual processes: a contained child that itself forks
helpers still counts once. With a cgroup or Job Object it is the exact
process count.
total_cpu_time: Option<Duration>Total CPU time (user + kernel) accumulated by the group, if available.
Semantic divergence by backend:
- Windows Job Object — cumulative across all processes that have ever been part of the job, including already-terminated ones. Reflects the full historical cost of the tree.
- Linux cgroup v2 — sum of
/proc/<pid>/stattimes for currently live members only; terminated processes are not accounted once they leave the cgroup. - POSIX process-group / macOS — always
None; no kernel accumulator is available without a cgroup or Job Object.
peak_memory_bytes: Option<u64>Peak memory used by the group in bytes, if available. This is the OS’s
own group-wide measure; its exact meaning differs by platform and it is
not directly comparable across platforms, nor equal to the sum of the
per-process RunningProcess::peak_memory_bytes
(which is a resident-set peak):
- Windows — the Job Object’s
PeakJobMemoryUsed: peak committed memory (commit charge) charged to the job, not a working-set figure. - Linux cgroup v2 — the sum of currently-live members’ peak resident
sets (
VmHWM); members that already exited are not counted. - POSIX process-group / macOS — always
None; no kernel accumulator.
Trait Implementations§
Source§impl Clone for ProcessGroupStats
impl Clone for ProcessGroupStats
Source§fn clone(&self) -> ProcessGroupStats
fn clone(&self) -> ProcessGroupStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ProcessGroupStats
Source§impl Debug for ProcessGroupStats
impl Debug for ProcessGroupStats
impl Eq for ProcessGroupStats
Source§impl PartialEq for ProcessGroupStats
impl PartialEq for ProcessGroupStats
Source§fn eq(&self, other: &ProcessGroupStats) -> bool
fn eq(&self, other: &ProcessGroupStats) -> bool
self and other values to be equal, and is used by ==.