Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: tools/binary_size/README.md

Issue 2864063002: Supersize: Chrome-specific breakdowns, console tweaks (Closed)
Patch Set: review tweaks Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/binary_size/libsupersize/canned_queries.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Tools for analyzing Chrome's binary size 1 # Tools for analyzing Chrome's binary size
2 2
3 # diagnose_bloat.py
4
5 Determine the cause of binary size bloat between two commits. Works for Android
6 and partially works for Linux (crbug/717550).
7
8 ## Example Usage:
9
10 # Build and diff HEAD^ and HEAD.
11 tools/binary_size/diagnose_bloat.py HEAD
12
13 # Diff OTHERREV and REV using downloaded build artifacts.
14 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --cloud
15
16 # Build and diff all contiguous revs in range OTHERREV..REV for src/v8.
17 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --subrepo v 8 --all
18
19 # Display detailed usage info (there are many options).
20 tools/binary_size/diagnose_bloat.py -h
21
3 # Super Size 22 # Super Size
4 23
5 Collect, archive, and analyze Chrome's binary size. 24 Collect, archive, and analyze Chrome's binary size.
6 25
7 ## "archive" 26 ## "archive"
8 27
9 Collect size information and dump it into a `.size` file. Mainly consists of 28 Collect size information and dump it into a `.size` file. Mainly consists of
10 symbol information parsed from a linker .map file. 29 symbol information parsed from a linker .map file.
11 30
12 ### Example Usage: 31 ### Example Usage:
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 tools/binary_size/supersize console chrome.size 72 tools/binary_size/supersize console chrome.size
54 73
55 ## "diff" 74 ## "diff"
56 75
57 A convenience command equivalent to: `console before.size after.size --query='Pr int(Diff(size_info1, size_info2))'` 76 A convenience command equivalent to: `console before.size after.size --query='Pr int(Diff(size_info1, size_info2))'`
58 77
59 ### Example Usage: 78 ### Example Usage:
60 79
61 tools/binary_size/supersize diff before.size after.size --all 80 tools/binary_size/supersize diff before.size after.size --all
62 81
63 # diagnose_bloat.py
64
65 Determine the cause of binary size bloat between two commits. Works for Android
66 and partially works for Linux (crbug/717550).
67
68 ## Example Usage:
69
70 # Build and diff HEAD^ and HEAD.
71 tools/binary_size/diagnose_bloat.py HEAD
72
73 # Diff OTHERREV and REV using downloaded build artifacts.
74 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --cloud
75
76 # Build and diff all contiguous revs in range OTHERREV..REV for src/v8.
77 tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --subrepo v 8 --all
78
79 # Display detailed usage info (there are many options).
80 tools/binary_size/diagnose_bloat.py -h
81
82 # Roadmap for Super Size: 82 # Roadmap for Super Size:
83 83
84 Tracked in https://crbug.com/681694 84 Tracked in https://crbug.com/681694
85 85
86 1. Better Linux support (clang/lld).
86 1. More `archive` features: 87 1. More `archive` features:
87 88
88 * Find out more about 0xffffffffffffffff addresses, and why such large 89 * Find out more about 0xffffffffffffffff addresses, and why such large
89 gaps exist after them. 90 gaps exist after them.
90 * Use nm to get the full list of symbols that share the same address.
91 * Collect java symbol information 91 * Collect java symbol information
92 * Collect .pak file information (using .o.whitelist files) 92 * Collect .pak file information (using .o.whitelist files)
93 * Collect .apk entry information 93 * Collect .apk entry information
94 94
95 1. More `console` features: 95 1. More `console` features:
96 96
97 * Template Symbols - shows when templates lead to code bloat. 97 * Template Symbols - shows when templates lead to code bloat.
98 * Duplicate Symbols - shows when statics in headers are an issue. 98 * Duplicate Symbols - shows when statics in headers are an issue.
99 * Overloaded Symbols - shows when overloads are excessive. 99 * Overloaded Symbols - shows when overloads are excessive.
100 * Per-class / namespace size (no way to distinguish class vs namespace). 100 * Per-class / namespace size (no way to distinguish class vs namespace).
101 * Per-Chrome package (Chrome-specific grouping. e.g. name prefixes).
102 * CSV output (for pasting into a spreadsheet). 101 * CSV output (for pasting into a spreadsheet).
102 * Make Where\*() methods filter recursively on already-grouped SymbolGroups.
103 * Add symbols.SplitByNamespace() - which will be like GroupByNamespace, but be
104 recursive.
103 105
104 1. More `html_report` features: 106 1. More `html_report` features:
105 107
106 * Break down by other groupings (e.g. create from nested `SymbolGroups`) 108 * Break down by other groupings (Create from result of SplitByNamespace())
109 * Render as simple tree view rather than 2d boxes
107 110
108 1. Integrate with `resource_sizes.py` so that it tracks size of major 111 1. Integrate with `resource_sizes.py` so that it tracks size of major
109 components separately: chrome vs blink vs skia vs v8. 112 components separately: chrome vs blink vs skia vs v8.
110 1. Speed up some steps (like normalizing names) via multiprocessing.
111 1. Add dependency graph info, perhaps just on a per-file basis. 113 1. Add dependency graph info, perhaps just on a per-file basis.
112
113 # Roadmap for diagnose_bloat.py:
114 1. More `diagnose_bloat.py` features:
115
116 * Add more diff types (pak files, Java symbols).
OLDNEW
« no previous file with comments | « no previous file | tools/binary_size/libsupersize/canned_queries.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698