Unverified Commit cbe72db1 authored by LongCatIsLooong's avatar LongCatIsLooong Committed by GitHub

macrobenchmark: TextField with complex paragraph (#73374)

parent 4a52532e
...@@ -55,6 +55,7 @@ The key `[test_name]` can be: ...@@ -55,6 +55,7 @@ The key `[test_name]` can be:
- `post_backdrop_filter_perf` - `post_backdrop_filter_perf`
- `simple_animation_perf` - `simple_animation_perf`
- `textfield_perf` - `textfield_perf`
- `fullscreen_textfield_perf`
### E2E benchmarks ### E2E benchmarks
......
...@@ -11,6 +11,7 @@ const String kPictureCacheRouteName = '/picture_cache'; ...@@ -11,6 +11,7 @@ const String kPictureCacheRouteName = '/picture_cache';
const String kLargeImageChangerRouteName = '/large_image_changer'; const String kLargeImageChangerRouteName = '/large_image_changer';
const String kLargeImagesRouteName = '/large_images'; const String kLargeImagesRouteName = '/large_images';
const String kTextRouteName = '/text'; const String kTextRouteName = '/text';
const String kFullscreenTextRouteName = '/fullscreen_text';
const String kAnimatedPlaceholderRouteName = '/animated_placeholder'; const String kAnimatedPlaceholderRouteName = '/animated_placeholder';
const String kColorFilterAndFadeRouteName = '/color_filter_and_fade'; const String kColorFilterAndFadeRouteName = '/color_filter_and_fade';
const String kFadingChildAnimationRouteName = '/fading_child_animation'; const String kFadingChildAnimationRouteName = '/fading_child_animation';
......
...@@ -12,6 +12,7 @@ import 'src/color_filter_and_fade.dart'; ...@@ -12,6 +12,7 @@ import 'src/color_filter_and_fade.dart';
import 'src/cubic_bezier.dart'; import 'src/cubic_bezier.dart';
import 'src/cull_opacity.dart'; import 'src/cull_opacity.dart';
import 'src/filtered_child_animation.dart'; import 'src/filtered_child_animation.dart';
import 'src/fullscreenTextField.dart';
import 'src/heavy_grid_view.dart'; import 'src/heavy_grid_view.dart';
import 'src/large_image_changer.dart'; import 'src/large_image_changer.dart';
import 'src/large_images.dart'; import 'src/large_images.dart';
...@@ -45,6 +46,7 @@ class MacrobenchmarksApp extends StatelessWidget { ...@@ -45,6 +46,7 @@ class MacrobenchmarksApp extends StatelessWidget {
kLargeImageChangerRouteName: (BuildContext context) => LargeImageChangerPage(), kLargeImageChangerRouteName: (BuildContext context) => LargeImageChangerPage(),
kLargeImagesRouteName: (BuildContext context) => LargeImagesPage(), kLargeImagesRouteName: (BuildContext context) => LargeImagesPage(),
kTextRouteName: (BuildContext context) => TextPage(), kTextRouteName: (BuildContext context) => TextPage(),
kFullscreenTextRouteName: (BuildContext context) => TextFieldPage(),
kAnimatedPlaceholderRouteName: (BuildContext context) => AnimatedPlaceholderPage(), kAnimatedPlaceholderRouteName: (BuildContext context) => AnimatedPlaceholderPage(),
kColorFilterAndFadeRouteName: (BuildContext context) => ColorFilterAndFadePage(), kColorFilterAndFadeRouteName: (BuildContext context) => ColorFilterAndFadePage(),
kFadingChildAnimationRouteName: (BuildContext context) => const FilteredChildAnimationPage(FilterType.opacity), kFadingChildAnimationRouteName: (BuildContext context) => const FilteredChildAnimationPage(FilterType.opacity),
...@@ -123,6 +125,13 @@ class HomePage extends StatelessWidget { ...@@ -123,6 +125,13 @@ class HomePage extends StatelessWidget {
Navigator.pushNamed(context, kTextRouteName); Navigator.pushNamed(context, kTextRouteName);
}, },
), ),
ElevatedButton(
key: const Key(kFullscreenTextRouteName),
child: const Text('Fullscreen Text'),
onPressed: () {
Navigator.pushNamed(context, kFullscreenTextRouteName);
},
),
ElevatedButton( ElevatedButton(
key: const Key(kAnimatedPlaceholderRouteName), key: const Key(kAnimatedPlaceholderRouteName),
child: const Text('Animated Placeholder'), child: const Text('Animated Placeholder'),
......
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:macrobenchmarks/common.dart';
import 'util.dart';
void main() {
macroPerfTestE2E(
'fullscreen_textfield_perf',
kFullscreenTextRouteName,
// The driver version doesn't have this delay because the delay caused
// by the communication between the host and the test device is long enough
// for the driver test, but there isn't such delay in this host independent
// test.
pageDelay: const Duration(milliseconds: 50),
body: (WidgetController controller) async {
final Finder textfield = find.byKey(const ValueKey<String>('fullscreen-textfield'));
controller.tap(textfield);
await Future<void>.delayed(const Duration(milliseconds: 5000));
},
);
}
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_driver/flutter_driver.dart';
import 'package:macrobenchmarks/common.dart';
import 'util.dart';
void main() {
macroPerfTest(
'fullscreen_textfield_perf',
kFullscreenTextRouteName,
driverOps: (FlutterDriver driver) async {
final SerializableFinder textfield = find.byValueKey('fullscreen-textfield');
driver.tap(textfield);
await Future<void>.delayed(const Duration(milliseconds: 5000));
},
);
}
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_devicelab/tasks/perf_tests.dart';
import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
Future<void> main() async {
deviceOperatingSystem = DeviceOperatingSystem.android;
await task(createFullscreenTextfieldPerfTest());
}
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'package:flutter_devicelab/tasks/perf_tests.dart';
import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
Future<void> main() async {
deviceOperatingSystem = DeviceOperatingSystem.android;
await task(createFullscreenTextfieldPerfE2ETest());
}
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_devicelab/tasks/perf_tests.dart';
import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
Future<void> main() async {
deviceOperatingSystem = DeviceOperatingSystem.android;
await task(createFullscreenTextfieldPerfTest());
}
...@@ -281,6 +281,22 @@ TaskFunction createTextfieldPerfE2ETest() { ...@@ -281,6 +281,22 @@ TaskFunction createTextfieldPerfE2ETest() {
).run; ).run;
} }
TaskFunction createFullscreenTextfieldPerfTest() {
return PerfTest(
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
'test_driver/run_app.dart',
'fullscreen_textfield_perf',
testDriver: 'test_driver/fullscreen_textfield_perf_test.dart',
).run;
}
TaskFunction createFullscreenTextfieldPerfE2ETest() {
return PerfTest.e2e(
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
'test/fullscreen_textfield_perf_e2e.dart',
).run;
}
TaskFunction createColorFilterAndFadePerfTest() { TaskFunction createColorFilterAndFadePerfTest() {
return PerfTest( return PerfTest(
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks', '${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
......
...@@ -157,6 +157,12 @@ tasks: ...@@ -157,6 +157,12 @@ tasks:
stage: devicelab stage: devicelab
required_agent_capabilities: ["mac/android"] required_agent_capabilities: ["mac/android"]
fullscreen_textfield_perf__timeline_summary:
description: >
Measures the runtime performance of large textfields with complex paragraph on Android.
stage: devicelab
required_agent_capabilities: ["mac/android"]
color_filter_and_fade_perf__timeline_summary: color_filter_and_fade_perf__timeline_summary:
description: > description: >
Measures the runtime performance of color filter with fade on Android. Measures the runtime performance of color filter with fade on Android.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment