Skip to content

feat(perf): baseline profiles and macrobenchmark module#856

Open
bmc08gt wants to merge 1 commit into
code/cashfrom
feat/baseline-profiles
Open

feat(perf): baseline profiles and macrobenchmark module#856
bmc08gt wants to merge 1 commit into
code/cashfrom
feat/baseline-profiles

Conversation

@bmc08gt
Copy link
Copy Markdown
Collaborator

@bmc08gt bmc08gt commented Jun 4, 2026

Summary

  • Add :apps:flipcash:benchmark macrobenchmark module with startup benchmarks and baseline profile generator
  • Add benchmark build type to the app (non-debuggable debug variant for accurate measurements)
  • Add static baseline-prof.txt covering startup, Compose, navigation, and coroutines
  • Add scripts/benchmark.sh runner with -d device targeting, -t test class filter, and .env sourcing for SEED_PHRASE
  • Baseline profile generator exercises full authenticated user journeys: login, scanner, wallet, give, menu

Usage

# Set seed phrase in .env (gitignored) for authenticated flows
echo 'SEED_PHRASE=word1 word2 word3 ...' >> .env

scripts/benchmark.sh                                          # all benchmarks, seed from .env
scripts/benchmark.sh -d emulator-5554 -t BaselineProfileGenerator  # profile gen on specific device
scripts/benchmark.sh -t StartupBenchmark                       # startup only

Test plan

  • connectedBenchmarkAndroidTest passes all 4 startup benchmarks on userdebug emulator
  • BaselineProfileGenerator runs pre-auth flow successfully
  • BaselineProfileGenerator runs authenticated flow (login + all user journeys) through 15 stable iterations
  • Run on physical device for production-representative numbers

@github-actions github-actions Bot added type: feature New functionality area: build-system Gradle, convention plugins, build-logic and removed type: feature New functionality labels Jun 4, 2026
@bmc08gt bmc08gt force-pushed the feat/baseline-profiles branch from 442f0ec to 24a2f41 Compare June 4, 2026 18:38
@github-actions github-actions Bot added the type: feature New functionality label Jun 4, 2026
@bmc08gt bmc08gt force-pushed the feat/baseline-profiles branch from 24a2f41 to d2ec11c Compare June 4, 2026 18:45
@github-actions github-actions Bot added the area: network gRPC, connectivity, API, exchange rates label Jun 4, 2026
…k script

- Add benchmark module with StartupBenchmark (4 compilation modes) and
  BaselineProfileGenerator (pre-auth + authenticated user journeys)
- Add benchmark build type (non-debuggable debug) to app for accurate measurements
- Add scripts/benchmark.sh with device targeting (-d), test class filter (-t),
  and .env sourcing for SEED_PHRASE
- Handle auth state persistence across BaselineProfileRule iterations
- Use IME input for Compose TextField compatibility in login flow
@bmc08gt bmc08gt force-pushed the feat/baseline-profiles branch from e4bbce4 to be5c350 Compare June 4, 2026 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build-system Gradle, convention plugins, build-logic area: network gRPC, connectivity, API, exchange rates type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant