OLD | NEW |
1 # Tools for analyzing Chrome's binary size | 1 # Tools for analyzing Chrome's binary size |
2 | 2 |
3 # Super Size | 3 # Super Size |
4 | 4 |
5 Collect, archive, and analyze Chrome's binary size. | 5 Collect, archive, and analyze Chrome's binary size. |
6 | 6 |
7 ## "archive" | 7 ## "archive" |
8 | 8 |
9 Collect size information and dump it into a `.size` file. Mainly consists of | 9 Collect size information and dump it into a `.size` file. Mainly consists of |
10 symbol information parsed from a linker .map file. | 10 symbol information parsed from a linker .map file. |
11 | 11 |
12 ### Example Usage: | 12 ### Example Usage: |
13 | 13 |
| 14 Note: Supersize on Linux has known deficiencies (crbug/717550). |
| 15 |
14 # Android: | 16 # Android: |
15 # Googlers: | 17 # Googlers: |
16 gn gen out/Release --args='is_official_build=true symbol_level=1 is_chrome_b
randed=true target_os="android"' | 18 gn gen out/Release --args='is_official_build=true symbol_level=1 is_chrome_b
randed=true target_os="android"' |
17 # Non-Googlers: | 19 # Non-Googlers: |
18 gn gen out/Release --args='is_official_build=true symbol_level=1 exclude_unw
ind_tables=true ffmpeg_branding="Chrome" proprietary_codecs=true target_os="andr
oid"' | 20 gn gen out/Release --args='is_official_build=true symbol_level=1 exclude_unw
ind_tables=true ffmpeg_branding="Chrome" proprietary_codecs=true target_os="andr
oid"' |
19 ninja -C out/Release -j 1000 libchrome.so | 21 ninja -C out/Release -j 1000 libchrome.so |
20 tools/binary_size/supersize archive chrome.size --elf-file out/Release/lib.u
nstripped/libchrome.so -v | 22 tools/binary_size/supersize archive chrome.size --elf-file out/Release/lib.u
nstripped/libchrome.so -v |
21 | 23 |
22 # Linux: | 24 # Linux: |
23 LLVM_DOWNLOAD_GOLD_PLUGIN=1 gclient runhooks # One-time download. | 25 LLVM_DOWNLOAD_GOLD_PLUGIN=1 gclient runhooks # One-time download. |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 * Break down by other groupings (e.g. create from nested `SymbolGroups`) | 105 * Break down by other groupings (e.g. create from nested `SymbolGroups`) |
104 | 106 |
105 1. Integrate with `resource_sizes.py` so that it tracks size of major | 107 1. Integrate with `resource_sizes.py` so that it tracks size of major |
106 components separately: chrome vs blink vs skia vs v8. | 108 components separately: chrome vs blink vs skia vs v8. |
107 1. Speed up some steps (like normalizing names) via multiprocessing. | 109 1. Speed up some steps (like normalizing names) via multiprocessing. |
108 1. Add dependency graph info, perhaps just on a per-file basis. | 110 1. Add dependency graph info, perhaps just on a per-file basis. |
109 | 111 |
110 # Roadmap for diagnose_apk_bloat.py: | 112 # Roadmap for diagnose_apk_bloat.py: |
111 1. More `diagnose_apk_bloat.py` features: | 113 1. More `diagnose_apk_bloat.py` features: |
112 | 114 |
113 * Add more diff types (pak files, Java symbols, native symbols). | 115 * Add more diff types (pak files, Java symbols). |
114 * Support local builds for revs before supersize existed. | |
OLD | NEW |