Class MetalPerformanceCounters
- Namespace
- DotCompute.Backends.Metal.Telemetry
- Assembly
- DotCompute.Backends.Metal.dll
System-level performance counter integration for Metal backend
public sealed class MetalPerformanceCounters : IDisposable
- Inheritance
-
MetalPerformanceCounters
- Implements
- Inherited Members
- Extension Methods
Constructors
MetalPerformanceCounters(ILogger<MetalPerformanceCounters>, MetalPerformanceCountersOptions)
public MetalPerformanceCounters(ILogger<MetalPerformanceCounters> logger, MetalPerformanceCountersOptions options)
Parameters
loggerILogger<MetalPerformanceCounters>optionsMetalPerformanceCountersOptions
Properties
CurrentCounters
Gets current counter values as strongly-typed snapshots for AOT compatibility
public Dictionary<string, CounterSnapshot> CurrentCounters { get; }
Property Value
Methods
AnalyzePerformance()
Performs performance analysis
public MetalPerformanceAnalysis AnalyzePerformance()
Returns
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
GetCurrentCounters()
Gets current counter values (API compatibility method).
public Dictionary<string, CounterSnapshot> GetCurrentCounters()
Returns
PerformCleanup(DateTimeOffset)
Performs cleanup of old counter data
public void PerformCleanup(DateTimeOffset cutoffTime)
Parameters
cutoffTimeDateTimeOffset
RecordDeviceUtilization(double, double)
Records device utilization metrics
public void RecordDeviceUtilization(double gpuUtilization, double memoryUtilization)
Parameters
RecordError(MetalError, string)
Records error events
public void RecordError(MetalError error, string context)
Parameters
errorMetalErrorcontextstring
RecordKernelExecution(string, TimeSpan, long, bool)
Records kernel execution performance
public void RecordKernelExecution(string kernelName, TimeSpan duration, long dataSize, bool success)
Parameters
RecordMemoryAllocation(long, TimeSpan, bool)
Records memory allocation performance
public void RecordMemoryAllocation(long sizeBytes, TimeSpan duration, bool success)
Parameters
RecordMemoryPressure(MemoryPressureLevel, double)
Records memory pressure events
public void RecordMemoryPressure(MemoryPressureLevel level, double percentage)
Parameters
levelMemoryPressureLevelpercentagedouble
RecordResourceUsage(ResourceType, long, long, long)
Records resource usage metrics
public void RecordResourceUsage(ResourceType type, long currentUsage, long peakUsage, long limit)
Parameters
typeResourceTypecurrentUsagelongpeakUsagelonglimitlong