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

Side by Side Diff: README.md

Issue 1425953002: add tool to check that deferred libraries contain the expected code (Closed) Base URL: git@github.com:dart-lang/dart2js_info.git@master
Patch Set: Created 5 years, 1 month 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 | « CHANGELOG.md ('k') | bin/deferred_library_check.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Dart2js Info 1 # Dart2js Info
2 2
3 This package contains libraries and tools you can use to process `.info.json` 3 This package contains libraries and tools you can use to process `.info.json`
4 files, which are produced when running dart2js with `--dump-info`. 4 files, which are produced when running dart2js with `--dump-info`.
5 5
6 The `.info.json` files contain data about each element included in 6 The `.info.json` files contain data about each element included in
7 the output of your program. The data includes information such as: 7 the output of your program. The data includes information such as:
8 8
9 * the size that each function adds to the `.dart.js` output, 9 * the size that each function adds to the `.dart.js` output,
10 * dependencies between functions, 10 * dependencies between functions,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 * [`code_deps.dart`][code_deps]: simple tool that can answer queries about the 62 * [`code_deps.dart`][code_deps]: simple tool that can answer queries about the
63 dependency between functions and fields in your program. Currently it only 63 dependency between functions and fields in your program. Currently it only
64 supports the `some_path` query, which shows a dependency path from one 64 supports the `some_path` query, which shows a dependency path from one
65 function to another. 65 function to another.
66 66
67 * [`library_size_split`][lib_split]: a tool that shows how much code was 67 * [`library_size_split`][lib_split]: a tool that shows how much code was
68 attributed to each library. This tool is configurable so it can group data 68 attributed to each library. This tool is configurable so it can group data
69 in many ways (e.g. to tally together all libraries that belong to a package, 69 in many ways (e.g. to tally together all libraries that belong to a package,
70 or all libraries that match certain name pattern). 70 or all libraries that match certain name pattern).
71 71
72 * [`deferred_library_check`][deferred_lib]: a tool that verifies that code
73 was split into deferred parts as expected. This tool takes a specification
74 of the expected layout of code into deferred parts, and checks that the
75 output from `dart2js` meets the specification.
76
72 * [`function_size_analysis`][function_analysis]: a tool that shows how much 77 * [`function_size_analysis`][function_analysis]: a tool that shows how much
73 code was attributed to each function. This tool also uses dependency 78 code was attributed to each function. This tool also uses dependency
74 information to compute dominance and reachability data. This information can 79 information to compute dominance and reachability data. This information can
75 sometimes help determine how much savings could come if the function was not 80 sometimes help determine how much savings could come if the function was not
76 included in the program. 81 included in the program.
77 82
78 * [`coverage_log_server`][coverage] and [`live_code_size_analysis`][live]: 83 * [`coverage_log_server`][coverage] and [`live_code_size_analysis`][live]:
79 dart2js has an experimental feature to gather coverage data of your 84 dart2js has an experimental feature to gather coverage data of your
80 application. The `coverage_log_server` can record this data, and 85 application. The `coverage_log_server` can record this data, and
81 `live_code_size_analysis` can correlate that with the `.info.json`, so you 86 `live_code_size_analysis` can correlate that with the `.info.json`, so you
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 - regexp: "file:///my/project/dir/(.*)" 186 - regexp: "file:///my/project/dir/(.*)"
182 ``` 187 ```
183 188
184 Regardless of the grouping configuration, the tool will display the total code 189 Regardless of the grouping configuration, the tool will display the total code
185 size attributed of all libraries, constants, and the program size. 190 size attributed of all libraries, constants, and the program size.
186 191
187 **Note**: eventually you should expect all numbers to add up to the program 192 **Note**: eventually you should expect all numbers to add up to the program
188 size. Currently dart2js's `--dump-info` is not complete, so numbers for 193 size. Currently dart2js's `--dump-info` is not complete, so numbers for
189 bootstrapping code and lazy static initializers are missing. 194 bootstrapping code and lazy static initializers are missing.
190 195
196 ### Deferred library verification
197
198 This tool checks that the output from dart2js meets a given specification,
199 given in a YAML file. It can be run as follows:
200
201 ```bash
202 pub global activate dart2js_info # only needed once
203 dart2js_info_deferred_library_check out.js.info.json manifest.yaml
204 ```
205
206 The format of the YAML file is:
207
208 ```yaml
209 main:
210 packages:
211 - some_package
212 - other_package
213
214 foo:
215 packages:
216 - foo
217 - bar
218
219 baz:
220 packages:
221 - baz
222 - quux
223 ```
224
225 The YAML file consists of a list of declarations, one for each deferred
226 part expected in the output. At least one of these parts must be named
227 "main"; this is the main part that contains the program entrypoint. Each
228 top-level part contains a list of package names that are expected to be
229 contained in that part. Any package that is not explicitly listed is
230 expected to be in the main part. For instance, in the example YAML above
231 the part named "baz" is expected to contain the packages "baz" and "quux".
232
233 The names for parts given in the specification YAML file (besides "main")
234 are arbitrary and just used for reporting when the output does not meet the
235 specification.
236
191 ### Function size analysis tool 237 ### Function size analysis tool
192 238
193 This command-line tool presents how much each function contributes to the total 239 This command-line tool presents how much each function contributes to the total
194 code of your application. We use dependency information to compute dominance 240 code of your application. We use dependency information to compute dominance
195 and reachability data as well. 241 and reachability data as well.
196 242
197 When you run: 243 When you run:
198 ```bash 244 ```bash
199 pub global activate dart2js_info # only needed once 245 pub global activate dart2js_info # only needed once
200 dart2js_info_function_size_analysis out.js.info.json 246 dart2js_info_function_size_analysis out.js.info.json
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 307
262 ## Code location, features and bugs 308 ## Code location, features and bugs
263 309
264 This package is developed in [github][repo]. Please file feature requests and 310 This package is developed in [github][repo]. Please file feature requests and
265 bugs at the [issue tracker][tracker]. 311 bugs at the [issue tracker][tracker].
266 312
267 [repo]: https://github.com/dart-lang/dart2js_info/ 313 [repo]: https://github.com/dart-lang/dart2js_info/
268 [tracker]: https://github.com/dart-lang/dart2js_info/issues 314 [tracker]: https://github.com/dart-lang/dart2js_info/issues
269 [code_deps]: https://github.com/dart-lang/dart2js_info/blob/master/bin/code_deps .dart 315 [code_deps]: https://github.com/dart-lang/dart2js_info/blob/master/bin/code_deps .dart
270 [lib_split]: https://github.com/dart-lang/dart2js_info/blob/master/bin/library_s ize_split.dart 316 [lib_split]: https://github.com/dart-lang/dart2js_info/blob/master/bin/library_s ize_split.dart
317 [lib_split]: https://github.com/dart-lang/dart2js_info/blob/master/bin/deferred_ library_check.dart
271 [coverage]: https://github.com/dart-lang/dart2js_info/blob/master/bin/coverage_l og_server.dart 318 [coverage]: https://github.com/dart-lang/dart2js_info/blob/master/bin/coverage_l og_server.dart
272 [live]: https://github.com/dart-lang/dart2js_info/blob/master/bin/live_code_size _analysis.dart 319 [live]: https://github.com/dart-lang/dart2js_info/blob/master/bin/live_code_size _analysis.dart
273 [function_analysis]: https://github.com/dart-lang/dart2js_info/blob/master/bin/f unction_size_analysis.dart 320 [function_analysis]: https://github.com/dart-lang/dart2js_info/blob/master/bin/f unction_size_analysis.dart
274 [AllInfo]: http://dart-lang.github.io/dart2js_info/doc/api/dart2js_info.info/All Info-class.html 321 [AllInfo]: http://dart-lang.github.io/dart2js_info/doc/api/dart2js_info.info/All Info-class.html
OLDNEW
« no previous file with comments | « CHANGELOG.md ('k') | bin/deferred_library_check.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698