xref: /aosp_15_r20/build/bazel/scripts/incremental_build/README.md (revision 7594170e27e0732bc44b93d1440d87a54b6ffe7c)
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