<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MetricKit",
  "identifier" : "/documentation/MetricKit/MetricResult",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "MetricKit"
    ],
    "preciseIdentifier" : "s:9MetricKit0A6ResultO"
  },
  "title" : "MetricResult"
}
-->

# MetricResult

An enumeration that represents a single metric value from a metric report entry.

```
enum MetricResult
```

## Discussion

`MetricResult` unifies all metric types into a single enum. You receive `MetricResult` values by iterating the [`values`](/documentation/MetricKit/MetricReport/IntervalEntry/values) array on a [`MetricReport.IntervalEntry`](/documentation/MetricKit/MetricReport/IntervalEntry), or the [`values`](/documentation/MetricKit/MetricReport/StateEntry/values) array on a [`MetricReport.StateEntry`](/documentation/MetricKit/MetricReport/StateEntry).

```swift
for result in entry.values {
    switch result {
    case .cpuTime(let metric):
        process(metric)
    case .peakMemory(let metric):
        process(metric)
    case .hangTime(let metric):
        process(metric)
    @unknown default:
        break
    }
}
```

Use the [`metricGroup`](/documentation/MetricKit/MetricResult/metricGroup) property to filter or categorize results without exhaustive switching when you only need a subset of metric types.

## Topics

### Metric group

[`var metricGroup: MetricGroup`](/documentation/MetricKit/MetricResult/metricGroup)

The metric group this metric belongs to.

### Responsiveness and animation

[`case hangTime(HangTimeMetric)`](/documentation/MetricKit/MetricResult/hangTime(_:))

[`case hitchTime(HitchTimeMetric)`](/documentation/MetricKit/MetricResult/hitchTime(_:))

### App runtime

[`case foregroundTermination(ForegroundTerminationMetric)`](/documentation/MetricKit/MetricResult/foregroundTermination(_:))

[`case backgroundTermination(BackgroundTerminationMetric)`](/documentation/MetricKit/MetricResult/backgroundTermination(_:))

[`case totalForegroundTime(TotalForegroundTimeMetric)`](/documentation/MetricKit/MetricResult/totalForegroundTime(_:))

[`case totalBackgroundTime(TotalBackgroundTimeMetric)`](/documentation/MetricKit/MetricResult/totalBackgroundTime(_:))

[`case totalBackgroundAudioTime(TotalBackgroundAudioTimeMetric)`](/documentation/MetricKit/MetricResult/totalBackgroundAudioTime(_:))

[`case totalBackgroundLocationTime(TotalBackgroundLocationTimeMetric)`](/documentation/MetricKit/MetricResult/totalBackgroundLocationTime(_:))

[`case locationActivityTime(LocationActivityTimeMetric)`](/documentation/MetricKit/MetricResult/locationActivityTime(_:))

[`case signpostInterval(SignpostIntervalMetric)`](/documentation/MetricKit/MetricResult/signpostInterval(_:))

### CPU and memory

[`case cpuTime(CPUTimeMetric)`](/documentation/MetricKit/MetricResult/cpuTime(_:))

[`case cpuInstructionsCount(CPUInstructionsCountMetric)`](/documentation/MetricKit/MetricResult/cpuInstructionsCount(_:))

[`case peakMemory(PeakMemoryMetric)`](/documentation/MetricKit/MetricResult/peakMemory(_:))

[`case suspendedMemory(SuspendedMemoryMetric)`](/documentation/MetricKit/MetricResult/suspendedMemory(_:))

### Network

[`case totalWiFiUpload(TotalWiFiUploadMetric)`](/documentation/MetricKit/MetricResult/totalWiFiUpload(_:))

[`case totalWiFiDownload(TotalWiFiDownloadMetric)`](/documentation/MetricKit/MetricResult/totalWiFiDownload(_:))

[`case totalCellularUpload(TotalCellularUploadMetric)`](/documentation/MetricKit/MetricResult/totalCellularUpload(_:))

[`case totalCellularDownload(TotalCellularDownloadMetric)`](/documentation/MetricKit/MetricResult/totalCellularDownload(_:))

[`case cellularConditionTime(CellularConditionTimeMetric)`](/documentation/MetricKit/MetricResult/cellularConditionTime(_:))

### App launch

[`case timeToFirstDraw(TimeToFirstDrawMetric)`](/documentation/MetricKit/MetricResult/timeToFirstDraw(_:))

[`case applicationResumeTime(ApplicationResumeTimeMetric)`](/documentation/MetricKit/MetricResult/applicationResumeTime(_:))

[`case optimizedTimeToFirstDraw(OptimizedTimeToFirstDrawMetric)`](/documentation/MetricKit/MetricResult/optimizedTimeToFirstDraw(_:))

[`case extendedLaunch(ExtendedLaunchMetric)`](/documentation/MetricKit/MetricResult/extendedLaunch(_:))

### Storage

[`case logicalDiskWrites(LogicalDiskWritesMetric)`](/documentation/MetricKit/MetricResult/logicalDiskWrites(_:))

[`case totalFileCount(TotalFileCountMetric)`](/documentation/MetricKit/MetricResult/totalFileCount(_:))

[`case totalFileSize(TotalFileSizeMetric)`](/documentation/MetricKit/MetricResult/totalFileSize(_:))

[`case totalDiskSpaceCapacity(TotalDiskSpaceCapacityMetric)`](/documentation/MetricKit/MetricResult/totalDiskSpaceCapacity(_:))

### Display and GPU

[`case pixelLuminance(PixelLuminanceMetric)`](/documentation/MetricKit/MetricResult/pixelLuminance(_:))

[`case gpuTime(GPUTimeMetric)`](/documentation/MetricKit/MetricResult/gpuTime(_:))

[`case metalFrameRate(MetalFrameRateMetric)`](/documentation/MetricKit/MetricResult/metalFrameRate(_:))

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`Decodable`](/documentation/Swift/Decodable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Encodable`](/documentation/Swift/Encodable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)