| 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 |