Skip to content

build(profile): regenerate the baseline profile - #1518

Merged
A-EDev merged 3 commits into
test/profiles-upgrade-downgradefrom
build/profiles-baseline-profile
Oct 28, 2026
Merged

A-EDev merged 3 commits into
test/profiles-upgrade-downgradefrom
build/profiles-baseline-profile

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Stacked on #1516.

  • Regenerates baseline-prof.txt and startup-prof.txt with ANDROID_SERIAL=<phone> ./gradlew :app:generateBaselineProfile --no-configuration-cache on the profiles stack, because the cold-start path changed: the registry read in attachBaseContext, PendingSlice before the start destination, and FlowRoot. All of them are now in both files (ProfileRegistry 90 entries, FlowRoot 72, ActiveProfile 8, PendingSlice 8).
  • Carries fix(benchmark): opt in to the experimental trace section metric #1477's commit (opt in to the experimental TraceSectionMetric), without which :benchmark doesn'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

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Build, packaging, or CI
  • Documentation

Validation

  • ./gradlew :app:assembleGithubDebug

  • ./gradlew :app:testGithubDebugUnitTest

  • I 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.

  • generateBaselineProfile on the phone: BUILD SUCCESSFUL in 15m 56s.

  • ./gradlew :app:assembleFossRelease and :app:assembleGithubRelease: passed. app-foss-universal-release-unsigned.apk is 29,379,637 B with this profile and with the previous one, against the 29,500,000 B gate; baseline.prof grows from 20,352 to 23,154 B and the dex shrinks by about 21 KB.

  • baseline-prof.txt grows from 50,976 to 62,861 lines; startup-prof.txt goes from 50,081 to 49,910.

  • startup-prof.txt is nearly as large as baseline-prof.txt, but R8 still fits it: of its classes that are in the foss release APK, 6,412 are in classes.dex and 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 (StartupBenchmark not 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.

  • The change does not introduce secrets, private data, or unexpected telemetry.
  • New user-facing text uses Android string resources.
  • Dependency and lockfile changes are intentional and limited to this PR.
  • Room schema changes include the required version bump and migration, or this PR does not change the Room schema.
  • Breaking changes and upgrade steps are clearly documented.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
A-EDev changed the base branch from test/profiles-upgrade-downgrade to main October 28, 2026 13:03
@github-actions github-actions Bot added documentation Improvements or additions to documentation player Video and audio playback algorithm Recommendation engine and math ui Compose UI, theming, or Material 3 surfaces sync Device-to-device sync labels Oct 28, 2026
@A-EDev
A-EDev changed the base branch from main to test/profiles-upgrade-downgrade October 28, 2026 13:21
@A-EDev
A-EDev merged commit 7aacdc5 into test/profiles-upgrade-downgrade Oct 28, 2026
6 of 12 checks passed
@A-EDev
A-EDev deleted the build/profiles-baseline-profile branch October 29, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

algorithm Recommendation engine and math documentation Improvements or additions to documentation player Video and audio playback sync Device-to-device sync ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants