Repository: flutter
Issue: [Web] Poor performance, scroll twitches
Labels: framework,c: performance,f: scrolling,platform-web,perf: speed,has reproducible steps,P2,found in release: 2.10,found in release: 2.13,team-web,triaged-web

hello, I found poor performance in the web version when scrolling text, steps to reproduce the problem:
- create a new project

<details><summary>paste code </summary>

 ```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const App());
}

class App extends StatelessWidget {
  const App({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: MyApp(),
      ),
    );
  }
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _controller = ScrollController();

  @override
  void initState() {
    runPlayer();
    super.initState();
  }

  void runPlayer() {
    void run() {
      if (_controller.hasClients) {
        _controller.jumpTo(0.0);
        _controller.animateTo(_controller.position.maxScrollExtent,
            duration: const Duration(seconds: 40), curve: Curves.linear);
      }
    }

    WidgetsBinding.instance!.addPostFrameCallback((_) => run());
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        const SizedBox(height: 20),
        ElevatedButton(
            onPressed: () => runPlayer(), child: const Text('start')),
        SizedBox(
          height: 500,
          child: SingleChildScrollView(
            controller: _controller,
            child: const Text(
              'The ship drew on and had safely passed the strait, '
              'which some volcanic shock has made between the Calasareigne'
              ' and Jaros islands; had doubled Pomegue, and approached the harbor '
              'under topsails, jib, and spanker, but so slowly and sedately that the'
              ' idlers, with that instinct which is the forerunner of evil, asked one'
              ' another what misfortune could have happened on board'
              'Между тем корабль приближался; он благополучно прошел пролив,'
              ' который вулканическое сотрясение некогда образовало между'
              ' островами Каласарень и Жарос, обогнул Помег и приближался '
              'под тремя марселями, кливером и контрбизанью, но так медленно'
              ' и скорбно, что любопытные, невольно почуяв несчастье, спрашивали'
              ' себя, что бы такое могло с ним случиться'
              'However, those experienced in navigation saw plainly that if any accident'
              ' had occurred, it was not to the vessel herself, for she bore down with'
              ' all the evidence of being skilfully handled, the anchor a-cockbill,'
              ' the jib-boom guys already eased off, and standing by the side of the'
              ' pilot, who was steering the Pharaon towards the narrow entrance of '
              'the inner port, was a young man, who, with activity and vigilant eye,'
              ' watched every motion of the ship, and repeated each direction of the pilot.',
              style: TextStyle(fontSize: 120),
            ),
          ),
        ),
      ],
    );
  }
}
```
</details>

- run with command: flutter run --release -d chrome

Jerks may not appear immediately, you need to refresh the browser page and observe the smoothness of text movement, when updating about 5 - 10 times, you can notice jerks

<details><summary>problem video</summary>

https://user-images.githubusercontent.com/77488346/159227078-1b69dc5c-3e22-4715-88a5-aecec035bd37.mov

</details>

<details><summary>my flutter doctor</summary>

```
     [✓] Flutter (Channel stable, 2.10.3, on macOS 12.2.1 21D62 darwin-arm, locale ru-RU)
    • Flutter version 2.10.3 at /Users/user/Desktop/Teleprompter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (2 weeks ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/user/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Users/user/Desktop/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] VS Code (version 1.65.0)
    • VS Code at /Users/user/Desktop/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 99.0.4844.74

[✓] HTTP Host Availability
    • All required HTTP hosts are available

```
</details>