flutter/dev/benchmarks/microbenchmarks
Kate Lovett 8ba459ce9f
Update VelocityTracker (4) (#139166)
This updates the implementation to use the stopwatch from the Clock object and pipes it through to the TestWidgetsFlutterBinding so it will be kept in sync with FakeAsync.

Relands https://github.com/flutter/flutter/pull/138843 attempted to reland https://github.com/flutter/flutter/pull/137381 which attempted to reland #132291
Fixes https://github.com/flutter/flutter/issues/97761

1. The original change was reverted due to flakiness it introduced in tests that use fling gestures.
  * Using a mocked clock through the test binding fixes this now
2. It was reverted a second time because a change at tip of tree broke it, exposing memory leaks, but it was not rebased before landing. 
  * These leaks are now fixed
3. It was reverted a third time, because we were so excellently quick to revert those other times, that we did not notice the broken benchmark that only runs in postsubmit.
  * The benchmark is now fixed
2023-11-29 14:59:13 +00:00
..
android [Android] Support Android 34 (take 2) (#137967) 2023-11-09 22:40:15 +00:00
ios iOS info.plist template: make UIViewControllerBasedStatusBar to be true (#128970) 2023-06-20 18:11:18 +00:00
lib Update VelocityTracker (4) (#139166) 2023-11-29 14:59:13 +00:00
money_asset_manifest.json Add asset manifest parsing benchmark (#112836) 2022-10-07 13:39:35 +00:00
pubspec.yaml Pin package:web 0.4.0 (#138428) 2023-11-15 15:03:21 -08:00
README.md Restore the original name of the velocity tracker microbenchmark (#64060) 2020-08-19 00:41:06 -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 any of these:

flutter run --release lib/gestures/velocity_tracker_bench.dart
flutter run --release lib/gestures/gesture_detector_bench.dart
flutter run --release lib/stocks/animation_bench.dart
flutter run --release lib/stocks/build_bench.dart
flutter run --release lib/stocks/layout_bench.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 of an existing microbenchmarks will effectively remove the old benchmark and create a new one, losing the historical data associated with the old benchmark in the process.