pub struct DynamicSample {
pub ts_ms: u64,
pub util_pct: Option<f32>,
pub util_engine: Option<String>,
pub mem_used_bytes: Option<u64>,
pub power_mw: Option<u32>,
pub temp_c: Option<f32>,
pub fan_pct: Option<f32>,
pub sm_clock_mhz: Option<u32>,
pub mem_clock_mhz: Option<u32>,
pub encoder_pct: Option<f32>,
pub decoder_pct: Option<f32>,
pub throttle: Option<ThrottleReasons>,
}Expand description
One per-tick sample of a device (nvtop’s refresh_dynamic_info split).
Fields§
§ts_ms: u64Unix millis; one timestamp per collection frame (charts jitter otherwise).
util_pct: Option<f32>§util_engine: Option<String>Name of the engine whose busy% util_pct reports, when utilization is an
engine-headline rather than a whole-device number (Windows WDDM: the busiest
single engine, Task-Manager-comparable — the name makes the headline
self-explaining: “Copy 97%” reads differently from “3D 97%”). None where
utilization is device-wide. serde(default) for frames recorded before this
field existed.
mem_used_bytes: Option<u64>§power_mw: Option<u32>§temp_c: Option<f32>§fan_pct: Option<f32>§sm_clock_mhz: Option<u32>§mem_clock_mhz: Option<u32>§encoder_pct: Option<f32>§decoder_pct: Option<f32>§throttle: Option<ThrottleReasons>Some(reasons) only when the source can actually observe throttling (NVML
clocks-event bitmask, AMD gpu_metrics, Intel throttle_reason_* sysfs).
None means “unobservable”, never “not throttling” — sources with no
throttle interface (Windows WDDM counters, macOS) must not assert the all-false
negative as fact (design cross-platform.md §5.4). serde(default) so frames
recorded before this change deserialize (missing field → None).
Trait Implementations§
Source§impl Clone for DynamicSample
impl Clone for DynamicSample
Source§fn clone(&self) -> DynamicSample
fn clone(&self) -> DynamicSample
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more