| 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 # Build and diff contiguous revs in range OTHERREV..REV for src/v8. | 75 # Build and diff 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 | 76 tools/binary_size/diagnose_apk_bloat.py REV --reference-rev OTHERREV --subre
po v8 --all |
| 77 | 77 |
| 78 # Display detailed usage info (there are many options). | 78 # Display detailed usage info (there are many options). |
| 79 tools/binary_size/diagnose_apk_bloat.py -h | 79 tools/binary_size/diagnose_apk_bloat.py -h |
| 80 | 80 |
| 81 # Roadmap for Super Size: | 81 # Roadmap for Super Size: |
| 82 | 82 |
| 83 Tracked in https://crbug.com/681694 | 83 Tracked in https://crbug.com/681694 |
| 84 | 84 |
| 85 1. Better Linux support (clang/lld). |
| 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 * Collect java symbol information | 90 * Collect java symbol information |
| 91 * Collect .pak file information (using .o.whitelist files) | 91 * Collect .pak file information (using .o.whitelist files) |
| 92 * Collect .apk entry information | 92 * Collect .apk entry information |
| 93 | 93 |
| 94 1. More `console` features: | 94 1. More `console` features: |
| 95 | 95 |
| 96 * Template Symbols - shows when templates lead to code bloat. | 96 * Template Symbols - shows when templates lead to code bloat. |
| 97 * Duplicate Symbols - shows when statics in headers are an issue. | 97 * Duplicate Symbols - shows when statics in headers are an issue. |
| 98 * Overloaded Symbols - shows when overloads are excessive. | 98 * Overloaded Symbols - shows when overloads are excessive. |
| 99 * Per-class / namespace size (no way to distinguish class vs namespace). | 99 * Per-class / namespace size (no way to distinguish class vs namespace). |
| 100 * Per-Chrome package (Chrome-specific grouping. e.g. name prefixes). | |
| 101 * CSV output (for pasting into a spreadsheet). | 100 * CSV output (for pasting into a spreadsheet). |
| 101 * Make Where\*() methods filter recursively on already-grouped SymbolGroups. |
| 102 * Add symbols.SplitByNamespace() - which will be like GroupByNamespace, but be |
| 103 recursive. |
| 102 | 104 |
| 103 1. More `html_report` features: | 105 1. More `html_report` features: |
| 104 | 106 |
| 105 * Break down by other groupings (e.g. create from nested `SymbolGroups`) | 107 * Break down by other groupings (Create from result of SplitByNamespace()) |
| 108 * Render as simple tree view rather than 2d boxes |
| 106 | 109 |
| 107 1. Integrate with `resource_sizes.py` so that it tracks size of major | 110 1. Integrate with `resource_sizes.py` so that it tracks size of major |
| 108 components separately: chrome vs blink vs skia vs v8. | 111 components separately: chrome vs blink vs skia vs v8. |
| 109 1. Speed up some steps (like normalizing names) via multiprocessing. | |
| 110 1. Add dependency graph info, perhaps just on a per-file basis. | 112 1. Add dependency graph info, perhaps just on a per-file basis. |
| 111 | |
| 112 # Roadmap for diagnose_apk_bloat.py: | |
| 113 1. More `diagnose_apk_bloat.py` features: | |
| 114 | |
| 115 * Add more diff types (pak files, Java symbols). | |
| OLD | NEW |