WidgetRecorder class abstract
A recorder for benchmarking interactions with the framework by creating widgets.
To implement a benchmark, extend this class and implement createWidget.
Example:
class BenchListView extends WidgetRecorder {
BenchListView() : super(name: benchmarkName);
static const String benchmarkName = 'bench_list_view';
@override
Widget createWidget() {
return Directionality(
textDirection: TextDirection.ltr,
child: _TestListViewWidget(),
);
}
}
class _TestListViewWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _TestListViewWidgetState();
}
}
class _TestListViewWidgetState extends State<_TestListViewWidget> {
ScrollController scrollController;
@override
void initState() {
super.initState();
scrollController = ScrollController();
Timer.run(() async {
bool forward = true;
while (true) {
await scrollController.animateTo(
forward ? 300 : 0,
curve: Curves.linear,
duration: const Duration(seconds: 1),
);
forward = !forward;
}
});
}
@override
Widget build(BuildContext context) {
return ListView.builder(
controller: scrollController,
itemCount: 10000,
itemBuilder: (BuildContext context, int index) {
return Text('Item #$index');
},
);
}
}
- Inheritance
- Implemented types
Constructors
- WidgetRecorder({required String name, bool useCustomWarmUp = false})
- Creates a widget benchmark recorder.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- isTracingEnabled → bool
-
Whether this recorder requires tracing using Chrome's DevTools Protocol's
"Tracing" API.
finalinherited
- name → String
-
The name of the benchmark.
finalinherited
- profile ↔ Profile
-
Returns the recorded profile.
getter/setter pairoverride-getter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- useCustomWarmUp → bool
-
Whether to delimit warm-up frames in a custom way.
final
Methods
-
createWidget(
) → Widget - Creates a widget to be benchmarked.
-
frameDidDraw(
) → void -
Called immediately after calling SchedulerBinding.handleDrawFrame.
override
-
frameWillDraw(
) → void -
Called just before calling SchedulerBinding.handleDrawFrame.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerDidStop(
VoidCallback fn) → void -
Add a callback that will be called by the recorder when it stops recording.
override
-
run(
) → Future< Profile> -
The implementation of the benchmark that will produce a Profile.
override
-
setUpAll(
) → Future< void> -
Called once before all runs of this benchmark recorder.
inherited
-
shouldContinue(
) → bool -
Whether the benchmark should continue running.
inherited
-
tearDownAll(
) → Future< void> -
Called once after all runs of this benchmark recorder.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited