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

Unified Diff: README.md

Issue 1406803003: add tool to verify dependency information (Closed) Base URL: git@github.com:hterkelsen/dart2js_info.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « CHANGELOG.md ('k') | bin/code_deps.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: README.md
diff --git a/README.md b/README.md
index 37a41516e7e620d7b9328695c20fb8f7274d6300..c5d01bf4d8f287d41c921528cdc89ae75b1c57e5 100644
--- a/README.md
+++ b/README.md
@@ -19,14 +19,14 @@ and size of your framework or app.
This package focuses on gathering libraries and tools that summarize all of that
information. Bear in mind that even with all these tools, it is not trivial to
isolate code-size issues. We just hope that these tools make things a bit
-earier.
+easier.
## Status
[![Build Status](https://travis-ci.org/dart-lang/dart2js_info.svg)](https://travis-ci.org/dart-lang/dart2js_info)
Currently, most tools available here can be used to analyze code-size and
-attibution of code-size to different parts of your app. With time, we hope to
+attribution of code-size to different parts of your app. With time, we hope to
add more data to the `.info.json` files, and include better tools to help
understand the results of type inference.
@@ -38,7 +38,7 @@ of this package and update when needed.
## Info API
[AllInfo][AllInfo] exposes a Dart representation of the `.info.json` files.
-You can parse the information using `AllInfo.parseFromJson`. For example:
+You can parse the information using `AllInfo.fromJson`. For example:
```dart
import 'dart:convert';
@@ -49,8 +49,9 @@ import 'package:dart2js_info/info.dart';
main(args) {
var infoPath = args[0];
var json = JSON.decode(new File(infoPath).readAsStringSync());
- var info = AllInfo.parseFromJson(json);
+ var info = new AllInfo.fromJson(json);
...
+}
```
## Available tools
@@ -68,7 +69,7 @@ The following tools are a available today:
or all libraries that match certain name pattern).
* [`function_size_analysis`][function_analysis]: a tool that shows how much
- code was attributed to each function. This tool also uses depedency
+ code was attributed to each function. This tool also uses dependency
information to compute dominance and reachability data. This information can
sometimes help determine how much savings could come if the function was not
included in the program.
@@ -79,6 +80,10 @@ The following tools are a available today:
`live_code_size_analysis` can correlate that with the `.info.json`, so you
determine why code that is not used is being included in your app.
+ * [`verify_deps`][verify_deps]: a tool that verifies that all elements are
+ reachable from the program's entrypoint. If there are unreachable elements,
+ this indicates that the dependency information is incomplete.
+
Next we describe in detail how to use each of these tools.
### Code deps tool
@@ -184,7 +189,7 @@ size attributed of all libraries, constants, and the program size.
**Note**: eventually you should expect all numbers to add up to the program
size. Currently dart2js's `--dump-info` is not complete, so numbers for
-bootstraping code and lazy static initializers are missing.
+bootstrapping code and lazy static initializers are missing.
### Function size analysis tool
@@ -251,12 +256,29 @@ dart2js_info_coverage_log_server main.dart.js
`mail.dart.js.coverage.json`
* Finally, run the live code analysis tool given it both the info and
- converage json files:
+ coverage json files:
```bash
dart2js_info_live_code_size_analysis main.dart.info.json main.dart.coverage.json
```
+### Verifying dependencies
+
+Coverage of dependency information may be incomplete. If there are elements that
+are live in the output that are unreachable through dependencies from the
+program's entrypoint, then we have incomplete dependency information. Note,
+however, that all elements may be reachable from the entrypoint even if there
+is missing dependency information. In order to verify that all elements are
+reachable from the app's entrypoint, simply run the tool as so:
+
+```bash
+dart2js_info_verify_deps foo.info.json
+```
+
+If all elements are reachable from the entrypoint, then the tool will return
+with exitcode 0. Otherwise, the tool will output the list of all functions that
+are not reachable from the entrypoint and return with exitcode 1.
+
## Code location, features and bugs
This package is developed in [github][repo]. Please file feature requests and
@@ -269,4 +291,5 @@ bugs at the [issue tracker][tracker].
[coverage]: https://github.com/dart-lang/dart2js_info/blob/master/bin/coverage_log_server.dart
[live]: https://github.com/dart-lang/dart2js_info/blob/master/bin/live_code_size_analysis.dart
[function_analysis]: https://github.com/dart-lang/dart2js_info/blob/master/bin/function_size_analysis.dart
+[verify_deps]: https://github.com/dart-lang/dart2js_info/blob/master/bin/verify_deps.dart
[AllInfo]: http://dart-lang.github.io/dart2js_info/doc/api/dart2js_info.info/AllInfo-class.html
« no previous file with comments | « CHANGELOG.md ('k') | bin/code_deps.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698