# MicrobenchmarkConfig

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

*** ** * ** ***


```
@ExperimentalBenchmarkConfigApi
public final class MicrobenchmarkConfig
```

<br />

*** ** * ** ***

Experimental config object for microbenchmarks for defining custom metrics, tracing behavior, and profiling, which overrides options set in [instrumentation arguments](https://developer.android.com/topic/performance/benchmarking/microbenchmark-instrumentation-args).

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#MicrobenchmarkConfig(kotlin.collections.List,kotlin.Boolean,kotlin.Boolean,androidx.benchmark.ProfilerConfig,kotlin.Int,kotlin.Int)( @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/androidx/benchmark/MetricCapture> metrics, boolean traceAppTagEnabled, boolean perfettoSdkTracingEnabled, https://developer.android.com/reference/androidx/benchmark/ProfilerConfig profiler, https://developer.android.com/reference/java/lang/Integer.html warmupCount, https://developer.android.com/reference/java/lang/Integer.html measurementCount )` |

| ### Public methods |
|---|---|
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#getMeasurementCount()()` Number of measurements to perform, leave `null` for default behavior. |
| `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/androidx/benchmark/MetricCapture>` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#getMetrics()()` Timing metrics for primary phase, post-warmup |
| `final https://developer.android.com/reference/androidx/benchmark/ProfilerConfig` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#getProfiler()()` Optional profiler to be used after the primary timing phase. |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#getWarmupCount()()` Number of non-measured warmup iterations to perform, leave `null` to determine automatically. |
| `final boolean` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#isPerfettoSdkTracingEnabled()()` Set to true to enable capture of tracing-perfetto trace events, such as in Compose composition tracing. |
| `final boolean` | `https://developer.android.com/reference/androidx/benchmark/MicrobenchmarkConfig#isTraceAppTagEnabled()()` Set to true to enable capture of `trace("foo") {}` blocks in the output Perfetto trace. |

## Public constructors

### MicrobenchmarkConfig

```
public MicrobenchmarkConfig(
    @NonNull List<@NonNull MetricCapture> metrics,
    boolean traceAppTagEnabled,
    boolean perfettoSdkTracingEnabled,
    ProfilerConfig profiler,
    Integer warmupCount,
    Integer measurementCount
)
```

## Public methods

### getMeasurementCount

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

```
public final Integer getMeasurementCount()
```

Number of measurements to perform, leave `null` for default behavior.

### getMetrics

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

```
public final @NonNull List<@NonNull MetricCapture> getMetrics()
```

Timing metrics for primary phase, post-warmup

Defaults to `https://developer.android.com/reference/androidx/benchmark/TimeCapture`.

### getProfiler

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

```
public final ProfilerConfig getProfiler()
```

Optional profiler to be used after the primary timing phase.

### getWarmupCount

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

```
public final Integer getWarmupCount()
```

Number of non-measured warmup iterations to perform, leave `null` to determine automatically.

### isPerfettoSdkTracingEnabled

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

```
public final boolean isPerfettoSdkTracingEnabled()
```

Set to true to enable capture of tracing-perfetto trace events, such as in Compose composition tracing.

Defaults to false to minimize interference.

### isTraceAppTagEnabled

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

```
public final boolean isTraceAppTagEnabled()
```

Set to true to enable capture of `trace("foo") {}` blocks in the output Perfetto trace.

Defaults to false to minimize interference.