Rename fullTracing.enable -> perfettoSdkTracing.enable
Test: ./gradlew compose:integ-tests:macrobench:cC -P android.testInstrumentationRunnerArguments.class=androidx.compose.integration.macrobenchmark.TrivialStartupBenchmark -P android.testInstrumentationRunnerArguments.androidx.benchmark.fullTracing.enable=true
Test: ./gradlew compose:integ-tests:macrobench:cC -P android.testInstrumentationRunnerArguments.class=androidx.compose.integration.macrobenchmark.TrivialStartupBenchmark -P android.testInstrumentationRunnerArguments.androidx.benchmark.perfettoSdkTracing.enable=true
Relnote: "Renamed `fullTracing.enable` instrumentation argument to
`perfettoSdkTracing.enable` for consistency with artifact name, and
other references. `fullTracing.enable` will continue to work as a
fallback."
Change-Id: I7cc007e681db791998a08659ad09c3c21ab50513
diff --git a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
index f82a89b..0577141 100644
--- a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
+++ b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
@@ -39,19 +39,18 @@
/**
* Set to true to enable androidx.tracing.perfetto tracepoints (such as composition tracing)
*
- * Note this only affects Macrobenchmarks currently, and only when StartupMode.COLD is not used,
- * since enabling the tracepoints wakes the target process
- *
- * Currently internal/experimental
+ * Note that when StartupMode.COLD is used, additional work must be performed during target app
+ * startup to initialize tracing.
*/
- private val _fullTracingEnable: Boolean
- val fullTracingEnable: Boolean get() = fullTracingEnableOverride ?: _fullTracingEnable
+ private val _perfettoSdkTracingEnable: Boolean
+ val perfettoSdkTracingEnable: Boolean get() =
+ perfettoSdkTracingEnableOverride ?: _perfettoSdkTracingEnable
/**
* Allows tests to override whether full tracing is enabled
*/
@VisibleForTesting
- var fullTracingEnableOverride: Boolean? = null
+ var perfettoSdkTracingEnableOverride: Boolean? = null
val enabledRules: Set<RuleType>
@@ -120,8 +119,11 @@
iterations =
arguments.getBenchmarkArgument("iterations")?.toInt()
- _fullTracingEnable =
- (arguments.getBenchmarkArgument("fullTracing.enable")?.toBoolean() ?: false)
+ _perfettoSdkTracingEnable =
+ arguments.getBenchmarkArgument("perfettoSdkTracing.enable")?.toBoolean()
+ // fullTracing.enable is the legacy/compat name
+ ?: arguments.getBenchmarkArgument("fullTracing.enable")?.toBoolean()
+ ?: false
// Transform comma-delimited list into set of suppressed errors
// E.g. "DEBUGGABLE, UNLOCKED" -> setOf("DEBUGGABLE", "UNLOCKED")
diff --git a/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
index d1ad575..df00a1a 100644
--- a/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
+++ b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
@@ -402,7 +402,7 @@
measureBlock: MacrobenchmarkScope.() -> Unit
) {
val perfettoSdkConfig =
- if (Arguments.fullTracingEnable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ if (Arguments.perfettoSdkTracingEnable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
PerfettoSdkConfig(
packageName,
when (startupMode) {
diff --git a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkBenchmark.kt b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkBenchmark.kt
index f9ca454..eb9ab43 100644
--- a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkBenchmark.kt
+++ b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkBenchmark.kt
@@ -37,15 +37,15 @@
class TrivialStartupPerfettoSdkBenchmark(
private val startupMode: StartupMode,
private val compilationMode: CompilationMode,
- private val isFullTracingEnabled: Boolean
+ private val isPerfettoSdkEnabled: Boolean
) {
@get:Rule
val benchmarkRule = MacrobenchmarkRule()
@Test
fun startup() = try {
- Arguments.fullTracingEnableOverride = isFullTracingEnabled
- assertThat(Arguments.fullTracingEnable, `is`(isFullTracingEnabled))
+ Arguments.perfettoSdkTracingEnableOverride = isPerfettoSdkEnabled
+ assertThat(Arguments.perfettoSdkTracingEnable, `is`(isPerfettoSdkEnabled))
try {
val perfettoSdkTraceSection = TraceSectionMetric(
@@ -63,7 +63,7 @@
"TRIVIAL_STARTUP_TRACING_ACTIVITY"
}
} catch (e: IllegalArgumentException) {
- if (!isFullTracingEnabled &&
+ if (!isPerfettoSdkEnabled &&
e.message?.contains("Unable to read any metrics during benchmark") == true
) {
// We are relying on the fact that Macrobenchmark will throw an exception when it
@@ -74,17 +74,17 @@
} else throw e // this is a legitimate failure
}
} finally {
- Arguments.fullTracingEnableOverride = null
+ Arguments.perfettoSdkTracingEnableOverride = null
}
companion object {
- @Parameterized.Parameters(name = "startup={0},compilation={1},fullTracing={2}")
+ @Parameterized.Parameters(name = "startup={0},compilation={1},perfettoSdk={2}")
@JvmStatic
fun parameters() = listOf(
- arrayOf(StartupMode.COLD, CompilationMode.DEFAULT, /* fullTracing = */ true),
- arrayOf(StartupMode.COLD, CompilationMode.DEFAULT, /* fullTracing = */ false),
- arrayOf(StartupMode.WARM, CompilationMode.DEFAULT, /* fullTracing = */ true),
- arrayOf(StartupMode.WARM, CompilationMode.DEFAULT, /* fullTracing = */ false),
+ arrayOf(StartupMode.COLD, CompilationMode.DEFAULT, /* perfettoSdk = */ true),
+ arrayOf(StartupMode.COLD, CompilationMode.DEFAULT, /* perfettoSdk = */ false),
+ arrayOf(StartupMode.WARM, CompilationMode.DEFAULT, /* perfettoSdk = */ true),
+ arrayOf(StartupMode.WARM, CompilationMode.DEFAULT, /* perfettoSdk = */ false),
)
}
}
diff --git a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkOverheadBenchmark.kt b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkOverheadBenchmark.kt
index 0e22752..28a6c97 100644
--- a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkOverheadBenchmark.kt
+++ b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/TrivialStartupPerfettoSdkOverheadBenchmark.kt
@@ -35,15 +35,15 @@
class TrivialStartupPerfettoSdkOverheadBenchmark(
private val startupMode: StartupMode,
private val compilationMode: CompilationMode,
- private val isFullTracingEnabled: Boolean
+ private val isPerfettoSdkEnabled: Boolean
) {
@get:Rule
val benchmarkRule = MacrobenchmarkRule()
@Test
fun startup() = try {
- Arguments.fullTracingEnableOverride = isFullTracingEnabled
- assertThat(Arguments.fullTracingEnable, `is`(isFullTracingEnabled))
+ Arguments.perfettoSdkTracingEnableOverride = isPerfettoSdkEnabled
+ assertThat(Arguments.perfettoSdkTracingEnable, `is`(isPerfettoSdkEnabled))
benchmarkRule.measureStartup(
compilationMode = compilationMode,
@@ -54,21 +54,21 @@
"TRIVIAL_STARTUP_TRACING_ACTIVITY"
}
} finally {
- Arguments.fullTracingEnableOverride = null
+ Arguments.perfettoSdkTracingEnableOverride = null
}
companion object {
// intended for local testing of all possible configurations
private const val exhaustiveMode = false
- @Parameterized.Parameters(name = "startup={0},compilation={1},fullTracing={2}")
+ @Parameterized.Parameters(name = "startup={0},compilation={1},perfettoSdk={2}")
@JvmStatic
fun parameters() =
when {
exhaustiveMode ->
// complete set for testing locally
createStartupCompilationParams()
- .flatMap { listOf(it + true, it + false) } /* full tracing enabled */
+ .flatMap { listOf(it + true, it + false) } /* perfetto sdk enabled */
else ->
// subset for testing in CI:
// compilation isn't expected to affect this, so we just look at startup time
@@ -76,7 +76,7 @@
createStartupCompilationParams(
listOf(StartupMode.COLD, StartupMode.WARM),
listOf(CompilationMode.DEFAULT)
- ).map { it + true } /* full tracing enabled */
+ ).map { it + true } /* perfetto sdk enabled */
}
}
}