Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit de16b7c8489100703778a0028fd3ee89dc0efaef
Author: Chris Craik <ccraik@google.com>
Date: Fri Sep 13 15:31:42 2024
Support multi-process in baseline profile collection
Fixes:366231469
Fixes:366457863
Test: BaselineProfileRuleTest
Test: ProfileInstallBroadcastTest
Relnote: "BaselineProfileRule now collects profiles for multi-process
apps by signalling each running process at the end of the block to
dump profiles. If a profile based compilation never successfully finds
a process to broadcast to, the compilation will fail, as it's
unexpected to have profile data within. Additionally, added an
instrumentation argument to control dump wait duration:
`androidx.benchmark.saveProfileWaitMillis`"
Change-Id: I0f51962266d3771ef72fad1a8c368316d8650694
M benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
M benchmark/benchmark-common/src/main/java/androidx/benchmark/Shell.kt
M benchmark/benchmark-macro-junit4/src/androidTest/java/androidx/benchmark/macro/junit4/BaselineProfileRuleTest.kt
A benchmark/benchmark-macro-junit4/src/androidTest/java/androidx/benchmark/macro/junit4/TrivialServiceHandle.kt
M benchmark/benchmark-macro/src/androidTest/AndroidManifest.xml
M benchmark/benchmark-macro/src/androidTest/java/androidx/benchmark/macro/MacrobenchmarkScopeTest.kt
M benchmark/benchmark-macro/src/androidTest/java/androidx/benchmark/macro/ProfileInstallBroadcastTest.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/CompilationMode.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/ProfileInstallBroadcast.kt
M benchmark/integration-tests/macrobenchmark-target/build.gradle
A benchmark/integration-tests/macrobenchmark-target/proguard-rules.pro
M benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
A benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/TrivialService.kt
M development/build_log_simplifier/messages.ignore
M profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstallReceiver.java
https://android-review.googlesource.com/3269885
Branch: androidx-main
commit de16b7c8489100703778a0028fd3ee89dc0efaef
Author: Chris Craik <ccraik@google.com>
Date: Fri Sep 13 15:31:42 2024
Support multi-process in baseline profile collection
Fixes:366231469
Fixes:366457863
Test: BaselineProfileRuleTest
Test: ProfileInstallBroadcastTest
Relnote: "BaselineProfileRule now collects profiles for multi-process
apps by signalling each running process at the end of the block to
dump profiles. If a profile based compilation never successfully finds
a process to broadcast to, the compilation will fail, as it's
unexpected to have profile data within. Additionally, added an
instrumentation argument to control dump wait duration:
`androidx.benchmark.saveProfileWaitMillis`"
Change-Id: I0f51962266d3771ef72fad1a8c368316d8650694
M benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
M benchmark/benchmark-common/src/main/java/androidx/benchmark/Shell.kt
M benchmark/benchmark-macro-junit4/src/androidTest/java/androidx/benchmark/macro/junit4/BaselineProfileRuleTest.kt
A benchmark/benchmark-macro-junit4/src/androidTest/java/androidx/benchmark/macro/junit4/TrivialServiceHandle.kt
M benchmark/benchmark-macro/src/androidTest/AndroidManifest.xml
M benchmark/benchmark-macro/src/androidTest/java/androidx/benchmark/macro/MacrobenchmarkScopeTest.kt
M benchmark/benchmark-macro/src/androidTest/java/androidx/benchmark/macro/ProfileInstallBroadcastTest.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/CompilationMode.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/MacrobenchmarkScope.kt
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/ProfileInstallBroadcast.kt
M benchmark/integration-tests/macrobenchmark-target/build.gradle
A benchmark/integration-tests/macrobenchmark-target/proguard-rules.pro
M benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
A benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/TrivialService.kt
M development/build_log_simplifier/messages.ignore
M profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstallReceiver.java
pr...@google.com <pr...@google.com> #3
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.benchmark:benchmark-common:1.4.0-alpha02
androidx.benchmark:benchmark-macro:1.4.0-alpha02
androidx.benchmark:benchmark-macro-junit4:1.4.0-alpha02
androidx.profileinstaller:profileinstaller:1.4.1
Description
BP capture works like the following:
Jiakaiz@ suggested a way to make this work for multi-process by serially broadcasting to each app process:
See internal convo