Files
sdk/pkg/analysis_server/benchmark
Danny Tuppeny 2aa6fa772b [analysis_server] Don't send redundant empty LSP diagnostics
We never need to send empty diagnostics to the client unless we have previously sent a non-empty set. These empty diagnostics account for a large amount of traffic during initial analysis and also could be quite large when modifying files with dependencies.

See https://github.com/dart-lang/sdk/issues/53501

Change-Id: I3d0e2ea2633469da905c8ca328dcc89e38a64edc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/337582
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-11-21 20:05:04 +00:00
..

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.