commit | ba40dced14b2fe338cc5f8965d8d5039f9a34e2f | [log] [tgz] |
---|---|---|
author | Jens Johansen <jensj@google.com> | Mon May 12 23:17:35 2025 -0700 |
committer | Commit Queue <dart-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon May 12 23:17:35 2025 -0700 |
tree | 6536301d7f0d3cc75a1edf247e81bf4219a5a316 | |
parent | 8f3dd793a8296d9cbfc344f0c9d6c6303be5bd68 [diff] |
[analyzer] Introduce --disable-file-byte-store Intended for benchmarking in combination with `--train-using` to make the instruction count used more stable. E.g. run like ``` perf stat -e "instructions:u" \ out/ReleaseX64/dart-sdk/bin/dartaotruntime \ --deterministic pkg/analysis_server/bin/server.aot \ --disable-file-byte-store --train-using pkg/front_end/lib/ ``` (on an aot-compiled server ( ``` out/ReleaseX64/dart-sdk/bin/dart compile \ aot-snapshot pkg/analysis_server/bin/server.dart` ``` ) looking at `instructions:u` the standard deviation is reduced quite a bit compared to not passing the new parameter. Without: 179,111,320 (95% becomes ±0.14%) With: 2,743,207 (95% becomes ±0.002%) Raw (although sorsted) numbers: Without: ``` 51,029,580,408 51,032,748,835 51,033,471,737 51,040,240,638 51,041,785,525 51,042,264,608 51,059,291,236 51,102,379,269 51,112,553,122 51,130,806,654 51,132,553,799 51,136,189,490 51,145,979,715 51,154,797,225 51,157,949,300 51,158,330,761 51,158,991,218 51,166,545,840 51,173,629,326 51,291,270,598 51,457,570,261 51,460,114,586 51,475,491,602 51,545,172,493 51,658,750,242 ``` With: ``` 49,878,337,415 49,878,419,595 49,879,001,051 49,881,016,075 49,882,607,217 49,882,624,488 49,883,029,234 49,883,305,881 49,883,384,825 49,883,585,095 49,883,725,866 49,884,020,490 49,884,020,988 49,884,213,971 49,884,552,882 49,884,562,548 49,884,644,369 49,885,275,225 49,885,344,007 49,885,914,848 49,886,165,117 49,886,968,388 49,887,615,329 49,888,309,000 49,888,930,570 ``` Change-Id: Id492e094a3176c2877f15e5952767ea55bef3657 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/428000 Commit-Queue: Jens Johansen <jensj@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Dart is:
Approachable: Develop with a strongly typed programming language that is consistent, concise, and offers modern language features like null safety and patterns.
Portable: Compile to ARM, x64, or RISC-V machine code for mobile, desktop, and backend. Compile to JavaScript or WebAssembly for the web.
Productive: Make changes iteratively: use hot reload to see the result instantly in your running app. Diagnose app issues using DevTools.
Dart's 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.
See LICENSE and PATENT_GRANT.
Visit dart.dev to learn more about the language, tools, and to find codelabs.
Browse pub.dev for more packages and libraries contributed by the community and the Dart team.
Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).
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 in our repo at docs.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.
Future plans for Dart are included in the combined Dart and Flutter roadmap on the Flutter wiki.