Class PerformanceProfile
- Namespace
- DotCompute.Core.Telemetry.Profiles
- Assembly
- DotCompute.Core.dll
Represents a completed performance profile containing comprehensive execution data. Contains all collected performance data and analysis results for a profiling session.
public sealed class PerformanceProfile
- Inheritance
-
PerformanceProfile
- Inherited Members
Properties
Analysis
Gets or sets the analysis results for this performance profile. Contains insights, bottlenecks, and recommendations derived from the collected data.
public ProfileAnalysis? Analysis { get; set; }
Property Value
- ProfileAnalysis
The profile analysis results or null if analysis hasn't been performed.
CorrelationId
Gets or sets the correlation identifier for this performance profile. Links all collected data to the original profiling session.
public string CorrelationId { get; set; }
Property Value
- string
The correlation identifier as a string.
DeviceMetrics
Gets or sets the device-specific metrics collected during this session. Maps device IDs to their corresponding performance metrics summary.
public Dictionary<string, DeviceProfileMetrics> DeviceMetrics { get; init; }
Property Value
- Dictionary<string, DeviceProfileMetrics>
A dictionary mapping device IDs to device profile metrics.
DevicesInvolved
Gets or sets the number of devices that were involved in this profiling session. Indicates the scope of distributed computing captured in the profile.
public int DevicesInvolved { get; set; }
Property Value
- int
The number of devices involved.
EndTime
Gets or sets the timestamp when the profiling session ended. Null if the profiling session is still active.
public DateTimeOffset? EndTime { get; set; }
Property Value
- DateTimeOffset?
The end time as a DateTimeOffset or null if still active.
KernelExecutions
Gets or sets the detailed kernel execution profiles collected during this session. Each profile contains comprehensive performance data for a single kernel execution.
public IList<KernelExecutionProfile> KernelExecutions { get; init; }
Property Value
- IList<KernelExecutionProfile>
A list of kernel execution profiles.
MemoryOperations
Gets or sets the detailed memory operation profiles collected during this session. Each profile contains comprehensive performance data for a memory operation.
public IList<MemoryOperationProfile> MemoryOperations { get; init; }
Property Value
- IList<MemoryOperationProfile>
A list of memory operation profiles.
Message
Gets or sets an optional message describing the profile status. Typically used to provide error details when status is not completed.
public string? Message { get; set; }
Property Value
- string
The status message as a string or null if not provided.
StartTime
Gets or sets the timestamp when the profiling session started. Marks the beginning of data collection for this profile.
public DateTimeOffset StartTime { get; set; }
Property Value
- DateTimeOffset
The start time as a DateTimeOffset.
Status
Gets or sets the status of the profiling session. Indicates whether the session completed successfully or encountered issues.
public ProfileStatus Status { get; set; }
Property Value
- ProfileStatus
The profile status from the ProfileStatus enumeration.
TotalDuration
Gets or sets the total duration of the profiling session. Calculated as the difference between end time and start time.
public TimeSpan TotalDuration { get; set; }
Property Value
- TimeSpan
The total duration as a TimeSpan.
TotalKernelExecutions
Gets or sets the total number of kernel executions captured in this profile. Provides a summary count of kernel performance data collected.
public int TotalKernelExecutions { get; set; }
Property Value
- int
The total kernel execution count.
TotalMemoryOperations
Gets or sets the total number of memory operations captured in this profile. Provides a summary count of memory performance data collected.
public int TotalMemoryOperations { get; set; }
Property Value
- int
The total memory operation count.