flutter/dev/benchmarks/microbenchmarks
Michael Goderbauer 5491c8c146
Auto-format Framework (#160545)
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.

**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00
..
android [Reland] Force automatic ndk download when building for Android (#160260) 2024-12-13 20:27:23 +00:00
ios Migrate Xcode projects last version checks to Xcode 15.1 (#140256) 2024-01-03 23:05:46 +00:00
lib Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00
money_asset_manifest.json Add asset manifest parsing benchmark (#112836) 2022-10-07 13:39:35 +00:00
pubspec.yaml Manual pub roll with flutter_tools patch (#160174) 2024-12-16 21:41:54 +00:00
README.md Improve microbenchmarks a smidge (#154461) 2024-09-03 09:10:13 -07:00

microbenchmarks

To run these benchmarks on a device, first run flutter logs in one window to see the device logs, then, in a different window, run:

flutter run -d $DEVICE_ID --profile lib/benchmark_collection.dart

To run a subset of tests:

flutter run -d $DEVICE_ID --profile lib/benchmark_collection.dart --dart-define=tests=foundation/change_notifier_bench.dart,language/sync_star_bench.dart

To specify a seed value for shuffling tests:

flutter run -d $DEVICE_ID --profile lib/benchmark_collection.dart --dart-define=seed=12345

The results should be in the device logs.

Avoid changing names of the benchmarks

Each microbenchmark is identified by a name, for example, "catmullrom_transform_iteration". Changing the name passed to BenchmarkResultPrinter.addResult will effectively remove the old benchmark and create a new one, losing the historical data associated with the old benchmark in the process.