tree: 4b5d0e1b48b4ac6b7d6c6619d2ecf47d2ecf5c0a
  1. BUILD.bazel
  2. canonical_perf.sh
  3. clone.py
  4. clone.sh
  5. clone_test.py
  6. cuj.py
  7. cuj_catalog.py
  8. finder.py
  9. finder_test.py
  10. incremental_build.py
  11. incremental_build.sh
  12. perf_metrics.py
  13. perf_metrics_test.py
  14. pretty.py
  15. pretty.sh
  16. pretty_test.py
  17. README.md
  18. ui.py
  19. util.py
  20. util_test.py
scripts/incremental_build/README.md

How to Use

The most basic invocation, e.g. incremental_build.sh -- libc, is logically equivalent to

  1. running m --skip-soong-tests libc and then
  2. parsing $OUTDIR/soong_metrics and $OUTDIR/bp2build_metrics.pb files
  3. Adding timing-related metrics from those files into out/timing_logs/metrics.csv
  4. repeat 1-3 for each CUJ

CUJs are defined in cuj_catalog.py Each row in metrics.csv has the timings of various “phases” of a build.

Try incremental_build.sh --help and canoncial_perf.sh --help for help on usage.