Table of Contents

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.