Assigned
Status Update
Comments
an...@google.com <an...@google.com> #2
When I run Macrobenchmark via the `connectedCheck` target with info logs on, I can see the arg being set:
```
INFO: Configuring Android Instrumentation driver: android_instrumentation_runtime {
instrumentation_info {
...
args_map {
key: "androidx.benchmark.suppressErrors"
value: "DEBUGGABLE"
}
}
}
```
Attempted to pass the flag via the `-e` option to the `instrument` command of ADB, but no change to error output:
```
$ adb shell am instrument -w com.ring.benchmark/androidx.test.runner.AndroidJUnitRunner -e androidx.benchmark.suppressErrors DEBUGGABLE
...
ERROR: Benchmark Target is Debuggable
```
```
INFO: Configuring Android Instrumentation driver: android_instrumentation_runtime {
instrumentation_info {
...
args_map {
key: "androidx.benchmark.suppressErrors"
value: "DEBUGGABLE"
}
}
}
```
Attempted to pass the flag via the `-e` option to the `instrument` command of ADB, but no change to error output:
```
$ adb shell am instrument -w com.ring.benchmark/androidx.test.runner.AndroidJUnitRunner -e androidx.benchmark.suppressErrors DEBUGGABLE
...
ERROR: Benchmark Target is Debuggable
```
Description
When running a specific Compose microbenchmark with method tracing enabled, the outputted trace doesn't appear to include all the desired information despite it seemingly being captured.
To reproduce:
androidx.compose.runtime.benchmark.SlotTableIntegrationBenchmark
suite. Instrumentation arguments should work, but I've been setting passing the argumentprofiler = ProfilerConfig.MethodTracing()
to theMicrobenchmarkConfig
inandroidx.compose.runtime.benchmark.ComposeBenchmarkBase
SlotTableIntegrationBenchmark.updateDisjointGroups()
and open the returned method trace.The benchmark being run is a Composition benchmark that has two major steps: recompose and apply changes. The expected stack chart would feature a long-running call of
Recomposer.runRecomposeAndApplyChanges()
, which would itself is split roughly in half to performCompositionImpl.recompose()
andCompositionImpl.applyChanges()
.In the returned trace, however, only the
recompose
call appears. This is particularly unexpected because a perfetto trace shows thatapplyChanges
does get called during the tracing phase of microbenchmark. It seems like the method trace is just getting truncated after a certain point. Could be worth noting that the method trace is just a little north of 16 MiB?