flutter/dev/benchmarks/microbenchmarks
John McDole 7aace1c5f9
Run all microbenchmarks (part trois) (#154446)
**Three things**

Re-lands #154374

New: fix `platform_channels_benchmarks` to print the "done" key. Updated notes for the microbenchmark parser. There are no other users of `microbenchmarks.readJsonResults`.

Re-Re-land: Uninstall microbenchmarks before running them.
Flakes in https://github.com/flutter/flutter/issues/153828 stem from adb saying the app isn't installed, but then failing to install wtih -r. Several other tests uninstall the app before trying to run it. Previous fix called uninstall between tests, but iOS takes 12 to 13 seconds to perform uninstall / install, which timed out the test. Just uninstall the one time since we only care about any lingering apps with different keys.
Potential solution https://github.com/flutter/flutter/issues/153828

Re-land Make things go fast
Instead of installing 21 different compilations of the same app to get results; compile and run them together. Locally on Mac+iOS, this should takes ~3 minutes instead of ~15 minutes.
2024-08-30 20:55:16 +00:00
..
android Reland "Update template/test compileSdk, targetSdk, ndk versions" (#153795) 2024-08-21 18:27:00 +00:00
ios Migrate Xcode projects last version checks to Xcode 15.1 (#140256) 2024-01-03 23:05:46 +00:00
lib Run all microbenchmarks (part trois) (#154446) 2024-08-30 20:55:16 +00:00
money_asset_manifest.json Add asset manifest parsing benchmark (#112836) 2022-10-07 13:39:35 +00:00
pubspec.yaml Roll pub packages (#154267) 2024-08-29 16:28:08 +00:00
README.md Run all microbenchmarks (part trois) (#154446) 2024-08-30 20:55:16 +00: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

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.