# Metric.Measurement

Artifact: [androidx.benchmark:benchmark-macro](https://developer.android.com/jetpack/androidx/releases/benchmark) [View Source](https://cs.android.com/search?q=file:androidx/benchmark/macro/Metric.kt+class:androidx.benchmark.macro.Metric.Measurement) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

*** ** * ** ***


```
@ConsistentCopyVisibility
@ExperimentalMetricApi
public final class Metric.Measurement
```

<br />

*** ** * ** ***

Represents a Metric's measurement of a single iteration.

To validate results in tests, use `https://developer.android.com/reference/androidx/benchmark/macro/package-summary#assertEqualMeasurements(kotlin.collections.List,kotlin.collections.List,kotlin.Double)`

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#Measurement(kotlin.String,kotlin.Double)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name, double data)` Represents a measurement with a single value captured per iteration. |
| `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#Measurement(kotlin.String,kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Double.html> dataSamples)` Represents a measurement with a value sampled an arbitrary number of times per iteration. |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Double.html>` | `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#getData()()` Measurement values captured by the metric, length constraints defined by `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#(kotlin.String,kotlin.collections.List,kotlin.Boolean)`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#getName()()` Unique name of the metric, should be camel case with abbreviated suffix, e.g. `startTimeNs` |
| `final boolean` | `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#getRequireSingleValue()()` True if the `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#(kotlin.String,kotlin.collections.List,kotlin.Boolean)` param is a single value per measurement, false if it contains an arbitrary number of samples. |

## Public constructors

### Measurement

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

```
public Measurement(@NonNull String name, double data)
```

Represents a measurement with a single value captured per iteration.

For example, in a startup Macrobenchmark, `https://developer.android.com/reference/androidx/benchmark/macro/StartupTimingMetric` returns a single measurement for `timeToInitialDisplayMs`.

### Measurement

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

```
public Measurement(@NonNull String name, @NonNull List<@NonNull Double> dataSamples)
```

Represents a measurement with a value sampled an arbitrary number of times per iteration.

For example, in a jank Macrobenchmark, `https://developer.android.com/reference/androidx/benchmark/macro/FrameTimingMetric` can return multiple measurements for `frameOverrunMs` - one for each observed frame.

When measurements are merged across multiple iterations, percentiles are extracted from the total pool of samples: P50, P90, P95, and P99.

## Public methods

### getData

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

```
public final @NonNull List<@NonNull Double> getData()
```

Measurement values captured by the metric, length constraints defined by `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#(kotlin.String,kotlin.collections.List,kotlin.Boolean)`.

### getName

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

```
public final @NonNull String getName()
```

Unique name of the metric, should be camel case with abbreviated suffix, e.g. `startTimeNs`

### getRequireSingleValue

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/benchmark#1.2.0)

```
public final boolean getRequireSingleValue()
```

True if the `https://developer.android.com/reference/androidx/benchmark/macro/Metric.Measurement#(kotlin.String,kotlin.collections.List,kotlin.Boolean)` param is a single value per measurement, false if it contains an arbitrary number of samples.