Table of Contents

Class SystemPerformanceSnapshot

Namespace
DotCompute.Core.Telemetry.System
Assembly
DotCompute.Core.dll

Represents a comprehensive snapshot of system performance metrics at a specific point in time. Captures detailed system-wide resource utilization including hardware counters and garbage collection statistics.

public sealed class SystemPerformanceSnapshot
Inheritance
SystemPerformanceSnapshot
Inherited Members

Properties

ActiveProfiles

Gets or sets the number of active profiling sessions at the time of the snapshot. Indicates the current profiling workload on the system.

public int ActiveProfiles { get; set; }

Property Value

int

The active profile count as an integer.

ActiveThreads

Gets or sets the number of active threads.

public int ActiveThreads { get; set; }

Property Value

int

CpuUsage

Gets or sets the CPU usage percentage (alias for ProcessorUsage).

public double CpuUsage { get; set; }

Property Value

double

Gen0Collections

Gets or sets the number of Generation 0 garbage collections that have occurred. Provides insight into short-lived object allocation patterns.

public int Gen0Collections { get; set; }

Property Value

int

The Generation 0 collection count as an integer.

Gen1Collections

Gets or sets the number of Generation 1 garbage collections that have occurred. Provides insight into medium-lived object allocation patterns.

public int Gen1Collections { get; set; }

Property Value

int

The Generation 1 collection count as an integer.

Gen2Collections

Gets or sets the number of Generation 2 garbage collections that have occurred. Provides insight into long-lived object allocation patterns and potential memory pressure.

public int Gen2Collections { get; set; }

Property Value

int

The Generation 2 collection count as an integer.

GpuUsage

Gets or sets the GPU usage percentage.

public double GpuUsage { get; set; }

Property Value

double

HardwareCounters

Gets or sets the hardware performance counters captured at the time of the snapshot. Maps counter names to their values for detailed hardware performance analysis.

public Dictionary<string, double> HardwareCounters { get; init; }

Property Value

Dictionary<string, double>

A dictionary mapping hardware counter names to their values.

MemoryAvailable

Gets or sets the available memory in bytes.

public long MemoryAvailable { get; set; }

Property Value

long

MemoryUsage

Gets or sets the memory usage in bytes at the time of the snapshot. Indicates how much system memory was being consumed.

public long MemoryUsage { get; set; }

Property Value

long

The memory usage in bytes.

ProcessorUsage

Gets or sets the CPU usage percentage at the time of the snapshot. Indicates how much of the system's CPU capacity was being utilized.

public double ProcessorUsage { get; set; }

Property Value

double

The CPU usage as a decimal (0.0 to 1.0).

ThreadCount

Gets or sets the number of active threads at the time of the snapshot. Provides insight into the system's concurrency level.

public int ThreadCount { get; set; }

Property Value

int

The thread count as an integer.

ThreadPoolWorkItems

Gets or sets the number of work items queued in the thread pool. Indicates the current workload and potential threading bottlenecks.

public int ThreadPoolWorkItems { get; set; }

Property Value

int

The thread pool work item count as an integer.

Timestamp

Gets or sets the timestamp when this snapshot was captured. Provides the exact moment when these system metrics were recorded.

public DateTimeOffset Timestamp { get; set; }

Property Value

DateTimeOffset

The timestamp as a DateTimeOffset.