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. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 tools/binary_size/supersize console chrome.size | 53 tools/binary_size/supersize console chrome.size |
54 | 54 |
55 ## "diff" | 55 ## "diff" |
56 | 56 |
57 A convenience command equivalent to: `console before.size after.size --query='Pr
int(Diff(size_info1, size_info2))'` | 57 A convenience command equivalent to: `console before.size after.size --query='Pr
int(Diff(size_info1, size_info2))'` |
58 | 58 |
59 ### Example Usage: | 59 ### Example Usage: |
60 | 60 |
61 tools/binary_size/supersize diff before.size after.size --all | 61 tools/binary_size/supersize diff before.size after.size --all |
62 | 62 |
63 # diagnose_apk_bloat.py | 63 # diagnose_bloat.py |
64 | 64 |
65 Determine the cause of binary size bloat for a patch. | 65 Determine the cause of binary size bloat between two commits. Works for Android |
| 66 and partially works for Linux (crbug/717550). |
66 | 67 |
67 ## Example Usage: | 68 ## Example Usage: |
68 | 69 |
69 # Build and diff HEAD^ and HEAD. | 70 # Build and diff HEAD^ and HEAD. |
70 tools/binary_size/diagnose_apk_bloat.py HEAD | 71 tools/binary_size/diagnose_bloat.py HEAD |
71 | 72 |
72 # Diff OTHERREV and REV using downloaded build artifacts. | 73 # Diff OTHERREV and REV using downloaded build artifacts. |
73 tools/binary_size/diagnose_apk_bloat.py REV --reference-rev OTHERREV --cloud | 74 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --cloud |
74 | 75 |
75 # Build and diff contiguous revs in range OTHERREV..REV for src/v8. | 76 # Build and diff all contiguous revs in range OTHERREV..REV for src/v8. |
76 tools/binary_size/diagnose_apk_bloat.py REV --reference-rev OTHERREV --subre
po v8 --all | 77 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --subrepo v
8 --all |
77 | 78 |
78 # Display detailed usage info (there are many options). | 79 # Display detailed usage info (there are many options). |
79 tools/binary_size/diagnose_apk_bloat.py -h | 80 tools/binary_size/diagnose_bloat.py -h |
80 | 81 |
81 # Roadmap for Super Size: | 82 # Roadmap for Super Size: |
82 | 83 |
83 Tracked in https://crbug.com/681694 | 84 Tracked in https://crbug.com/681694 |
84 | 85 |
85 1. More `archive` features: | 86 1. More `archive` features: |
86 | 87 |
87 * Find out more about 0xffffffffffffffff addresses, and why such large | 88 * Find out more about 0xffffffffffffffff addresses, and why such large |
88 gaps exist after them. | 89 gaps exist after them. |
89 * Use nm to get the full list of symbols that share the same address. | 90 * Use nm to get the full list of symbols that share the same address. |
(...skipping 12 matching lines...) Expand all Loading... |
102 | 103 |
103 1. More `html_report` features: | 104 1. More `html_report` features: |
104 | 105 |
105 * Break down by other groupings (e.g. create from nested `SymbolGroups`) | 106 * Break down by other groupings (e.g. create from nested `SymbolGroups`) |
106 | 107 |
107 1. Integrate with `resource_sizes.py` so that it tracks size of major | 108 1. Integrate with `resource_sizes.py` so that it tracks size of major |
108 components separately: chrome vs blink vs skia vs v8. | 109 components separately: chrome vs blink vs skia vs v8. |
109 1. Speed up some steps (like normalizing names) via multiprocessing. | 110 1. Speed up some steps (like normalizing names) via multiprocessing. |
110 1. Add dependency graph info, perhaps just on a per-file basis. | 111 1. Add dependency graph info, perhaps just on a per-file basis. |
111 | 112 |
112 # Roadmap for diagnose_apk_bloat.py: | 113 # Roadmap for diagnose_bloat.py: |
113 1. More `diagnose_apk_bloat.py` features: | 114 1. More `diagnose_bloat.py` features: |
114 | 115 |
115 * Add more diff types (pak files, Java symbols). | 116 * Add more diff types (pak files, Java symbols). |
OLD | NEW |