mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

The average frame time of page transitions on Moto G4 is now very close to 16ms (the last 10 measurements on our dashboard are between 15.5ms to 16.7ms and half of them are below 16ms). It is now much faster than when we disabled it (which was at about 35ms). So I think that we should be able to enable it by default. I'll leave the flag there until we implement the retained rendering to bring the frame time comfortably below 16ms. See https://github.com/flutter/flutter/issues/13736
37 lines
1.2 KiB
Dart
37 lines
1.2 KiB
Dart
// Copyright 2016 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// See //dev/devicelab/bin/tasks/flutter_gallery__memory_nav.dart
|
|
|
|
import 'dart:async';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/scheduler.dart';
|
|
import 'package:flutter_gallery/gallery/app.dart' show GalleryApp;
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
Future<void> endOfAnimation() async {
|
|
do {
|
|
await SchedulerBinding.instance.endOfFrame;
|
|
} while (SchedulerBinding.instance.hasScheduledFrame);
|
|
}
|
|
|
|
int iteration = 0;
|
|
|
|
class LifecycleObserver extends WidgetsBindingObserver {
|
|
@override
|
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
|
debugPrint('==== MEMORY BENCHMARK ==== $state ====');
|
|
debugPrint('This was lifecycle event number $iteration in this instance');
|
|
}
|
|
}
|
|
|
|
Future<void> main() async {
|
|
runApp(const GalleryApp());
|
|
await endOfAnimation();
|
|
await new Future<Null>.delayed(const Duration(milliseconds: 50));
|
|
debugPrint('==== MEMORY BENCHMARK ==== READY ====');
|
|
WidgetsBinding.instance.addObserver(new LifecycleObserver());
|
|
}
|