measure static method
Future<FrameGuardReport>
measure(
- WidgetTester tester, {
- required String name,
- required Future<
void> action(), - FrameGuardSessionOptions? options,
- FrameBudget? budget,
- int warmupFrames = 5,
- Duration? warmup,
Measures action under a FrameGuard session and returns the report.
Ensures FrameGuard is initialized. Prefer profile/release for meaningful timings; debug mode still works but reports a warning.
Implementation
static Future<FrameGuardReport> measure(
WidgetTester tester, {
required String name,
required Future<void> Function() action,
FrameGuardSessionOptions? options,
FrameBudget? budget,
int warmupFrames = 5,
Duration? warmup,
}) async {
if (!FrameGuard.isInitialized) {
FrameGuard.initialize();
}
final session = FrameGuard.startSession(
name: name,
options: options,
budget: budget,
warmupFrames: warmupFrames,
warmup: warmup,
);
await action();
// Allow pending frames to flush into timings callbacks.
await tester.pump();
await tester.pump(const Duration(milliseconds: 16));
final report = await session.stop();
FrameGuard.instance.clearActiveSession(session);
return report;
}