Repository navigation
build(profile): regenerate the baseline profile - #1518
Merged
A-EDev merged 3 commits intoOct 28, 2026
Merged
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
A-EDev
merged commit Oct 28, 2026
7aacdc5
into
test/profiles-upgrade-downgrade
6 of 12 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on #1516.
baseline-prof.txtandstartup-prof.txtwithANDROID_SERIAL=<phone> ./gradlew :app:generateBaselineProfile --no-configuration-cacheon the profiles stack, because the cold-start path changed: the registry read inattachBaseContext,PendingSlicebefore the start destination, andFlowRoot. All of them are now in both files (ProfileRegistry90 entries,FlowRoot72,ActiveProfile8,PendingSlice8).TraceSectionMetric), without which:benchmarkdoesn't compile on main today. Once fix(benchmark): opt in to the experimental trace section metric #1477 is merged it is a no-op here.Related issue
Part of #372, #602, #883 and #1039 (profiles).
Change type
Validation
./gradlew :app:assembleGithubDebug./gradlew :app:testGithubDebugUnitTestI ran any additional flavor-specific build or test tasks affected by this change.
I manually tested the affected behavior on an Android device or emulator.
generateBaselineProfileon the phone: BUILD SUCCESSFUL in 15m 56s../gradlew :app:assembleFossReleaseand:app:assembleGithubRelease: passed.app-foss-universal-release-unsigned.apkis 29,379,637 B with this profile and with the previous one, against the 29,500,000 B gate;baseline.profgrows from 20,352 to 23,154 B and the dex shrinks by about 21 KB.baseline-prof.txtgrows from 50,976 to 62,861 lines;startup-prof.txtgoes from 50,081 to 49,910.startup-prof.txtis nearly as large asbaseline-prof.txt, but R8 still fits it: of its classes that are in the foss release APK, 6,412 are inclasses.dexand 84 in later dex files (the other 5,507 are framework classes or were removed or merged by R8). A second run whose startup journey killed the app right after the first frame produced the same size (50,048 lines), so those classes do load before the first frame; the generator is unchanged apart from its KDoc naming:app:generateBaselineProfile, the task that exists.Startup time was not measured (
StartupBenchmarknot run).Test device and Android version: Xiaomi 2311DRK48G, HyperOS, Android 16
Screenshots or recordings
Risk and compatibility
Profile files only; no code change apart from #1477's opt-in.