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

Side by Side Diff: README.md

Issue 2201903004: add tool to get breakdown of deferred libraries by size (Closed) Base URL: git@github.com:dart-lang/dart2js_info.git@master
Patch Set: add TODO Created 4 years, 4 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 | « .gitignore ('k') | bin/code_deps.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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 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 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 74 of the expected layout of code into deferred parts, and checks that the
75 output from `dart2js` meets the specification. 75 output from `dart2js` meets the specification.
76
77 * [`deferred_library_size`][deferred_size]: a tool that gives a breakdown of
78 the sizes of the deferred parts of the program. This can show how much of
79 your total code size can be loaded deferred.
76 80
77 * [`function_size_analysis`][function_analysis]: a tool that shows how much 81 * [`function_size_analysis`][function_analysis]: a tool that shows how much
78 code was attributed to each function. This tool also uses dependency 82 code was attributed to each function. This tool also uses dependency
79 information to compute dominance and reachability data. This information can 83 information to compute dominance and reachability data. This information can
80 sometimes help determine how much savings could come if the function was not 84 sometimes help determine how much savings could come if the function was not
81 included in the program. 85 included in the program.
82 86
83 * [`coverage_log_server`][coverage] and [`live_code_size_analysis`][live]: 87 * [`coverage_log_server`][coverage] and [`live_code_size_analysis`][live]:
84 dart2js has an experimental feature to gather coverage data of your 88 dart2js has an experimental feature to gather coverage data of your
85 application. The `coverage_log_server` can record this data, and 89 application. The `coverage_log_server` can record this data, and
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 contained in that part, a list of package names that are expected to be in 237 contained in that part, a list of package names that are expected to be in
234 another part, or both. For instance, in the example YAML above the part named 238 another part, or both. For instance, in the example YAML above the part named
235 "baz" is expected to contain the packages "baz" and "quux" and exclude the 239 "baz" is expected to contain the packages "baz" and "quux" and exclude the
236 package "zardoz". 240 package "zardoz".
237 241
238 The names for parts given in the specification YAML file (besides "main") 242 The names for parts given in the specification YAML file (besides "main")
239 are the same as the name given to the deferred import in the dart file. For 243 are the same as the name given to the deferred import in the dart file. For
240 instance, if you have `import 'package:foo/bar.dart' deferred as baz;` in your 244 instance, if you have `import 'package:foo/bar.dart' deferred as baz;` in your
241 dart file, then the corresponding name in the specification file is 'baz'. 245 dart file, then the corresponding name in the specification file is 'baz'.
242 246
247 ### Deferred library size tool
248
249 This tool gives a breakdown of all of the deferred code in the program by size.
250 It can show how much of the total code size is deferred. It can be run as
251 follows:
252
253 ```bash
254 pub global activate dart2js_info # only needed once
255 dart2js_info_deferred_library_size out.js.info.json
256 ```
257
258 The tool will output a table listing all of the deferred imports in the program
259 as well as the "main" chunk, which is not deferred. The output looks like:
260
261 ```
262 Size by library
263 ------------------------------------------------
264 main 12345678
265 foo 7654321
266 bar 1234567
267 ------------------------------------------------
268 Main chunk size 12345678
269 Deferred code size 8888888
270 Percent of code deferred 41.86%
271 ```
272
243 ### Function size analysis tool 273 ### Function size analysis tool
244 274
245 This command-line tool presents how much each function contributes to the total 275 This command-line tool presents how much each function contributes to the total
246 code of your application. We use dependency information to compute dominance 276 code of your application. We use dependency information to compute dominance
247 and reachability data as well. 277 and reachability data as well.
248 278
249 When you run: 279 When you run:
250 ```bash 280 ```bash
251 pub global activate dart2js_info # only needed once 281 pub global activate dart2js_info # only needed once
252 dart2js_info_function_size_analysis out.js.info.json 282 dart2js_info_function_size_analysis out.js.info.json
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 ## Code location, features and bugs 344 ## Code location, features and bugs
315 345
316 This package is developed in [github][repo]. Please file feature requests and 346 This package is developed in [github][repo]. Please file feature requests and
317 bugs at the [issue tracker][tracker]. 347 bugs at the [issue tracker][tracker].
318 348
319 [repo]: https://github.com/dart-lang/dart2js_info/ 349 [repo]: https://github.com/dart-lang/dart2js_info/
320 [tracker]: https://github.com/dart-lang/dart2js_info/issues 350 [tracker]: https://github.com/dart-lang/dart2js_info/issues
321 [code_deps]: https://github.com/dart-lang/dart2js_info/blob/master/bin/code_deps .dart 351 [code_deps]: https://github.com/dart-lang/dart2js_info/blob/master/bin/code_deps .dart
322 [lib_split]: https://github.com/dart-lang/dart2js_info/blob/master/bin/library_s ize_split.dart 352 [lib_split]: https://github.com/dart-lang/dart2js_info/blob/master/bin/library_s ize_split.dart
323 [deferred_lib]: https://github.com/dart-lang/dart2js_info/blob/master/bin/deferr ed_library_check.dart 353 [deferred_lib]: https://github.com/dart-lang/dart2js_info/blob/master/bin/deferr ed_library_check.dart
354 [deferred_size]: https://github.com/dart-lang/dart2js_info/blob/master/bin/defer red_library_size.dart
324 [coverage]: https://github.com/dart-lang/dart2js_info/blob/master/bin/coverage_l og_server.dart 355 [coverage]: https://github.com/dart-lang/dart2js_info/blob/master/bin/coverage_l og_server.dart
325 [live]: https://github.com/dart-lang/dart2js_info/blob/master/bin/live_code_size _analysis.dart 356 [live]: https://github.com/dart-lang/dart2js_info/blob/master/bin/live_code_size _analysis.dart
326 [function_analysis]: https://github.com/dart-lang/dart2js_info/blob/master/bin/f unction_size_analysis.dart 357 [function_analysis]: https://github.com/dart-lang/dart2js_info/blob/master/bin/f unction_size_analysis.dart
327 [AllInfo]: http://dart-lang.github.io/dart2js_info/doc/api/dart2js_info.info/All Info-class.html 358 [AllInfo]: http://dart-lang.github.io/dart2js_info/doc/api/dart2js_info.info/All Info-class.html
OLDNEW
« no previous file with comments | « .gitignore ('k') | bin/code_deps.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698