Skip to content

Add the generated baseline profile - #41

Merged
bardesss merged 1 commit into
mainfrom
perf/baseline-profile
Nov 13, 2026
Merged

bardesss merged 1 commit into
mainfrom
perf/baseline-profile

Conversation

@bardesss

Copy link
Copy Markdown
Owner

Release builds now ship a baseline profile, so Android compiles the startup and list scroll code at install time instead of after several days of use.

Changes

  • startWithFakeData() launched an intent with no component, so Android showed the app chooser and the profile test always failed. The intent now names MainActivity.
  • app/src/release/generated/baselineProfiles/ holds the generated baseline-prof.txt and startup-prof.txt (about 23k rules, 1,877 of them in Wick's own code).

How it was generated

./gradlew :app:generateBaselineProfile -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile on an Android 14 emulator (Google APIs, x86_64). The run covers cold start with 500 fake items, scrolling and flinging the list, the drawer, and the text sheet.

Check

assembleRelease now puts assets/dexopt/baseline.prof (11 KB) in the APK.

Regenerate with the same command when the startup or scroll path changes a lot.

The profile test opened the app chooser instead of Wick, because its launch intent named no app. It now names MainActivity, and the generated startup and baseline profiles are committed so release builds compile the startup and scroll paths at install.
@bardesss
bardesss merged commit 5266ef6 into main Nov 13, 2026
1 check passed
@bardesss
bardesss deleted the perf/baseline-profile branch November 13, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant