flutter/dev/benchmarks/microbenchmarks
Christopher Fujino 730d6d44b7
Don't pin package:macros (#148087)
Full context https://github.com/flutter/flutter/issues/148004

TL;DR

1. Because `package:macros` depends on `package:_macros` via [a Dart SDK
dependency](https://github.com/dart-lang/sdk/blob/main/pkg/macros/pubspec.yaml#L13);
and
2. `package:macros` exactly pins `package:_macros`; and
3. Each new version of `package:macros` will increment its exact pin of
`package:_macros`
([comment](https://github.com/flutter/flutter/issues/148004#issuecomment-2103099893));
and
4. The [flutter/flutter](https://github.com/flutter/flutter) repository
exactly pins the Dart SDK (via its exact pin on the
[flutter/engine](https://github.com/flutter/engine) repository

Therefore, the [flutter/flutter](https://github.com/flutter/flutter)
repository effectively pins both `package:macros` and `package:_macros`
already (as in, there exists only a single version of each that pub will
successfully be able to solve within the context of a particular Flutter
SDK).

Therefore, it is safe for
[flutter/flutter](https://github.com/flutter/flutter) repository to
*not* pin `package:macros`, which will allow engine -> framework rolls
that contain a new Dart SDK that contains a new `package:_macros`
version to land automatically, provided all tests pass.
2024-05-09 16:28:49 -07:00
..
android Reland "Update gradle lockfiles template (#140115)" (#143081) 2024-02-08 16:22:15 +00:00
ios Migrate Xcode projects last version checks to Xcode 15.1 (#140256) 2024-01-03 23:05:46 +00:00
lib Reland "Add a microbenchmark for text intrinsic height layout (#145007)" (#145037) 2024-03-13 00:52:24 +00:00
money_asset_manifest.json Add asset manifest parsing benchmark (#112836) 2022-10-07 13:39:35 +00:00
pubspec.yaml Don't pin package:macros (#148087) 2024-05-09 16:28:49 -07:00
README.md Added missing code block language in docs (#147481) 2024-05-01 14:44:27 +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 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.