dfef2338ebcb43744efee8b00fedbdd08cf7966b
The VM creates context objects even though it's only applicable in a non-taken branch. This CL moves such a branch into its own function and thus avoids the context object creation when loading a dill file eagerly. This CL further more reduces the number of context creations by not lazy loading basically non-existing function node bodies (e.g. the body of a FunctionNode in the outline). The change has the following effect when loading platform/outline 100 times after 2 seconds warmup (statistics on 5 runs): Outline, lazy loading disabled: -12.8133% +/- 2.26214% Outline, lazy loading enabled: -40.9197% +/- 1.50042% Platform, lazy loading disabled: No difference proven at 95.0% confidence Platform, lazy loading enabled: -44.3347% +/- 0.613235% Bug: Change-Id: I9634e0a81f43efeb4e2524edb765d36072074f1e Reviewed-on: https://dart-review.googlesource.com/18220 Reviewed-by: Peter von der Ahé <ahe@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
…
…
…
Dart
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Using Dart
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
Building Dart
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
Contributing to Dart
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.
License & patents
Description
Languages
Dart
84.6%
C++
13%
Python
0.7%
JavaScript
0.5%
HTML
0.4%
Other
0.5%