|author||Ryan Macnak <firstname.lastname@example.org>||Tue May 21 19:44:27 2019 +0000|
|committer||Ryan Macnak <email@example.com>||Tue May 21 19:44:27 2019 +0000|
[vm, compiler] Unoptimized megamorphic calls. When an instance call in unoptimized code creates more than FLAG_max_polymorphic_checks cases, switch the call to use a MegamorphicCache instead of ICData. The prevents unbounded collection of type feedback, and gives improvements on microbenchmarks in the 3-8% range for unoptimized code. It also leads to a loss of target frequency information for the optimizer, leading to different ordering for range checks in polymorphic inlining. This leads to changes on megamorphic microbenchmarks from -31% to +60%, weighted toward the negative end. In practice the frequency information seems unimportant, as dart2js has 4.01% geomean improvement. This is a step toward direct monomorphic calls in unoptimized code, which will also make use of the patching and type feedback extraction added here. Bug: https://github.com/dart-lang/sdk/issues/26780 Bug: https://github.com/dart-lang/sdk/issues/36409 Bug: https://github.com/dart-lang/sdk/issues/36731 Change-Id: I29f53f23b6794c5f5f0db8b8184788cee16fd9c5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99270 Reviewed-by: Alexander Markov <firstname.lastname@example.org>
Optimized for UI: Develop with a programming language specialized around the needs of user interface creation
Productive: Make changes iteratively: use hot reload to see the result instantly in your running app
Dart has flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:
Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.
Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).
Dart is free and open source.
Browse pub.dev for more packages and libraries contributed by the community and the Dart team.
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.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.