| Index: tools/perf/docs/apk_size_regressions.md
|
| diff --git a/tools/perf/docs/apk_size_regressions.md b/tools/perf/docs/apk_size_regressions.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..33aa3faeaa17498279bfb04fe778a83ec0d292d5
|
| --- /dev/null
|
| +++ b/tools/perf/docs/apk_size_regressions.md
|
| @@ -0,0 +1,66 @@
|
| +# How to Deal with Apk Size Alerts
|
| +
|
| +### If the alert is for "other lib size" or "Unknown files size":
|
| + * File a bug against agrieve@ to fix
|
| + [resource_sizes.py](https://cs.chromium.org/chromium/src/build/android/resource_sizes.py).
|
| + * ...or fix it yourself. This script will output the list of unknown
|
| + filenames.
|
| +
|
| +### If the alert is a downstream size alert (aka, for Monochrome.apk):
|
| + * The regression most likely already occurred in the upstream
|
| + MonochromePublic.apk target. Look at the
|
| + [upstream graphs](https://chromeperf.appspot.com/report?sid=5cfed2a07b55702fc64255a316cdb78531e916da4e933677645bbf1fe78cf2e0&num_points=1500)
|
| + to find the culprit & de-dupe with upstream alerts.
|
| + * If no upstream regression was found, look through the downstream commits
|
| + within the given date range to find the culprit.
|
| + * Via `git log --format=fuller` (be sure to look at `CommitDate` and not
|
| + `AuthorDate`)
|
| +
|
| +### If the alert is for a roll:
|
| + * Use a bisect to try and determine a more precise commit.
|
| +
|
| +### What to do once the commit is identified:
|
| + * If the code seems to justify the size increase:
|
| + 1. Annotate the code review with the following (replacing **bold** parts):
|
| + > FYI - this added **20kb** to Chrome on Android. No action is required
|
| + > (unless you can think of an obvious way to reduce the overhead).
|
| + >
|
| + > Link to size graph:
|
| +[https://chromeperf.appspot.com/report?sid=6468aba6ff8d28723690042144ee893d2dd3ded7fb414a916520b90659b8410f&rev=**440074**](https://chromeperf.appspot.com/report?sid=6468aba6ff8d28723690042144ee893d2dd3ded7fb414a916520b90659b8410f&rev=440074)
|
| + 2. Add an entry to
|
| + [this spreadsheet](https://docs.google.com/spreadsheets/d/1GrRkszV7Oy5pVsaMb5Eb6s8izW9t4dElBxIH3iGq93o/edit#gid=1894856744)
|
| + to document the increase (also Update the "Themes / Thoughts" tab if
|
| + applicable).
|
| + * If the code might not justify the size increase:
|
| + 1. File a bug and assign to the author to follow-up (and link them to this
|
| + doc).
|
| + 2. Add an entry to
|
| + [this spreadsheet](https://docs.google.com/spreadsheets/d/1GrRkszV7Oy5pVsaMb5Eb6s8izW9t4dElBxIH3iGq93o/edit#gid=1894856744)
|
| + to document the increase.
|
| +
|
| +# Debugging Apk Size Increase
|
| +
|
| +### How to debug apk size increase
|
| +
|
| +1. Figure out which file within the .apk increased by looking at the size
|
| + graphs showing the breakdowns.
|
| + * Refer to the chromeperf link that should have been posted to your code review
|
| + (see above).
|
| + * Alternatively, refer to "Apk Size" section here:
|
| + [https://goto.google.com/clank/dashboards](https://goto.google.com/clank/dashboards) (*googler only*).
|
| +1. If it's libchrome.so, build before & after and use
|
| + [tools/binary_size/](https://cs.chromium.org/chromium/src/tools/binary_size/).
|
| + * This is somewhat hand-wavy. Some notes on how this tool works at
|
| + [crbug/482401](https://bugs.chromium.org/p/chromium/issues/detail?id=482401).
|
| +1. If it's classes.dex, build before & after and use:
|
| + [tools/android/dexdiffer/dexdiffer.py](https://cs.chromium.org/chromium/src/tools/android/dexdiffer/dexdiffer.py).
|
| + * This currently just shows a list of symbols added / removed rather than
|
| + taking into account method body sizes.
|
| + * Enhancements to this tool tracked at
|
| + [crbug/678044](https://bugs.chromium.org/p/chromium/issues/detail?id=678044).
|
| +1. If it's images, ensure they are optimized:
|
| + * Would it be smaller as a VectorDrawable?
|
| + * If it's lossy, consider using webp.
|
| + * Ensure you've optimized with
|
| + [tools/resources/optimize-png-files.sh](https://cs.chromium.org/chromium/src/tools/resources/optimize-png-files.sh).
|
| +
|
|
|