# RecompositionTracer

Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/tooling/RecompositionTracer.jvmAndAndroid.kt+class:androidx.compose.runtime.tooling.RecompositionTracer) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.13.0-rc01) Common/AllAndroid/JVM
- android

  ```
  @InternalComposeTracingApi
  class RecompositionTracer
  ```

*** ** * ** ***

Collects recomposition flow events.

Tracks the causal flow between state reads/writes and recomposition of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope`s by connecting to recomposition lifecycle and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state events.

The traces are recorded in the Perfetto trace format through a provided `https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer.TraceCollector`.

NOTE: Recomposition tracing captures a stack trace and instance string on all state reads and writes, which results a significant overhead. Avoid using it in production.

## Summary

| ### Nested types |
|---|
| `interface https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer.TraceCollector` Records recomposition flow events. |

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer#RecompositionTracer(androidx.compose.runtime.tooling.RecompositionTracer.TraceCollector)(traceCollector: https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer.TraceCollector)` | android |

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CancellationHandle` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer#installTracing(kotlin.coroutines.CoroutineContext)(coroutineContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html)` Installs recomposition tracing. | android |

## Public constructors

### RecompositionTracer

android Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.13.0-rc01)

```
RecompositionTracer(traceCollector: RecompositionTracer.TraceCollector)
```

| Parameters |
|---|---|
| `traceCollector: https://developer.android.com/reference/kotlin/androidx/compose/runtime/tooling/RecompositionTracer.TraceCollector` | receives recomposition trace events |

## Public functions

### installTracing

android Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.13.0-rc01)

```
fun installTracing(coroutineContext: CoroutineContext): CancellationHandle
```

Installs recomposition tracing.

Registers observers and starts recording events using the caller's coroutine context. The method returns after the recomposer observer is installed.

| Parameters |
|---|---|
| `coroutineContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` | context to run the recomposer observer in |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CancellationHandle` | a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CancellationHandle` to stop tracing and dispose of registered observers |