b2f4cf3e01
The usual approach: Pure interfaces marked `interface`. Pure implementation classes marked `final`. Base classes marked `base` or nothing, and `mixin class` if reasonable. Combined X/XBase/XMixin where possible. CoreLibraryReviewExempt: Aske is away Change-Id: I927f9bd488fb385ff9c17c8fc94920a1f5076347 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289200 Reviewed-by: Stephen Adams <sra@google.com> Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: Nate Bosch <nbosch@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
Analysis Server Benchmarks
How to run the benchmarks
To see a list of all available benchmarks, run:
dart benchmark/benchmarks.dart list
To run an individual benchmark, run:
dart benchmark/benchmarks.dart run <benchmark-id>
How they're tested
In order to make sure that our benchmarks don't regress in terms of their ability to run, we create one unit test per benchmark, and run those tests as part of our normal CI test suite.
To save time on the CI, we only run one iteration of each benchmark
(--repeat=1), and we run the benchmark on a smaller data set (--quick).
See test/benchmark_test.dart.
To add a new benchmark
Register the new benchmark in the main() method of benchmark/benchmarks.dart.
On the bots
Our benchmarks run on a continuous performance testing system. Currently, the benchmarks need to be manually registered ahead of time.