Name Date Size #Lines LOC

..--

BUILD.bazelH A D25-Apr-20252.1 KiB10898

README.mdH A D25-Apr-2025801 2115

canonical_perf.shH A D25-Apr-20251.9 KiB6339

clone.pyH A D25-Apr-202513.4 KiB395320

clone.shH A D25-Apr-20251.1 KiB3415

clone_test.pyH A D25-Apr-20253.5 KiB129107

cuj.pyH A D25-Apr-20254.4 KiB145100

cuj_catalog.pyH A D25-Apr-202514.7 KiB455367

cuj_regex_based.pyH A D25-Apr-20253.1 KiB10778

finder.pyH A D25-Apr-20254.1 KiB142112

finder_test.pyH A D25-Apr-20251.8 KiB5330

go_allowlists.pyH A D25-Apr-20254.6 KiB138106

go_allowlists_test.pyH A D25-Apr-20252.9 KiB8562

incremental_build.pyH A D25-Apr-202513.5 KiB400322

incremental_build.shH A D25-Apr-20251.2 KiB3815

perf_metrics.pyH A D25-Apr-202511 KiB326264

perf_metrics_test.pyH A D25-Apr-20252.3 KiB6638

plot_metrics.pyH A D25-Apr-20254.2 KiB141103

plot_metrics.template.txtH A D25-Apr-2025705 3024

plot_metrics_test.pyH A D25-Apr-20251.4 KiB4019

pretty.pyH A D25-Apr-20257.3 KiB249196

pretty.shH A D25-Apr-20251.1 KiB3415

pretty_test.pyH A D25-Apr-20253 KiB9774

ui.pyH A D25-Apr-20258.8 KiB283247

util.pyH A D25-Apr-20259.5 KiB318236

util_test.pyH A D25-Apr-20252.9 KiB8159

README.md

1# How to Use
2
3The most basic invocation, e.g. `incremental_build.sh --cujs "modify Android.bp$" -- libc`, is logically
4equivalent to
5
61. running `m --skip-soong-tests libc` and then
72. parsing `$OUTDIR/soong_metrics`, `$OUTDIR/bp2build_metrics.pb` etc
83. Adding timing-related metrics from step 2 into `out/timing_logs/metrics.csv`
94. Now it's "warmed-up", for each cuj:
10   1. apply changes associate with the cuj
11   1. repeat steps 1 through 3
12
13CUJs are defined in `cuj_catalog.py`
14Each row in `metrics.csv` has the timings of various "phases" of a build.
15
16Try `incremental_build.sh --help` and `canoncial_perf.sh --help` for help on
17usage.
18
19## CUJ groups
20
21Since most CUJs involve making changes to the source code, we group a number of cujs together such that when any of them is specified, all CUJs