Skip to content

[Android] Slow cold startup with Impeller, with elevated slow-start rate in Android vitals #190829

Closed as duplicate

Description

@abdullah517

Steps to reproduce

  1. Build the Flutter application in release mode.
  2. Run the application on an Android device where the issue can be reproduced. The issue was reproduced on an Infinix X6835 with Impeller enabled.
  3. Ensure Impeller is enabled.
  4. Force-stop the application to ensure a cold start.
  5. Launch the application and measure the time until the first screen becomes usable.
  6. On the affected Infinix X6835 device, cold startup takes approximately 5–6 seconds.
  7. Repeat the same test with Impeller disabled on the same device.
  8. Startup is significantly faster with Impeller disabled.
  9. Compare the attached Flutter startup traces (start_up_info.json and start_up_timeline.json) from both configurations.
  10. this is the gpu of device infinix x6835 MediaTek Helio G37

the first 2 files are with impeller enabled

start_up_info.json
start_up_timeline.json

the last 2 files are with impeller disabled

start_up_info.json
start_up_timeline.json

Code sample

Code sample
[Paste your code here]

Performance profiling on master channel

  • The issue still persists on the master channel

Timeline Traces

Timeline Traces

I collected Flutter DevTools timeline traces on the affected device with the performance overlay disabled.

I have attached startup traces for both configurations:

  • Impeller enabled

start_up_info.json
start_up_timeline.json

  • Impeller disabled

start_up_info.json
start_up_timeline.json

The Impeller-enabled and Impeller-disabled traces were collected from the same device and application to allow comparison of the startup and rasterization behavior.

Video demonstration

Video demonstration

[Upload media here]

What target platforms are you seeing this bug on?

Android

OS/Browser name and version | Device information

Infinix x6835 android 13 MediaTek Helio G37

Does the problem occur on emulator/simulator as well as on physical devices?

Unknown

Is the problem only reproducible with Impeller?

N/A

Logs

Logs
[Paste your logs here]

Flutter Doctor output

macbookpro@MacBooks-MacBook-Pro arealand % flutter doctor -v
[✓] Flutter (Channel stable, 3.44.1, on macOS 15.7.1 24G231 darwin-x64, locale en-US) [2.7s]
• Flutter version 3.44.1 on channel stable at /Users/macbookpro/flutterdev/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 924134a (2 months ago), 2026-05-29 12:13:22 -0400
• Engine revision c416acf
• Dart version 3.12.1
• DevTools version 2.57.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations,
enable-native-assets, enable-swift-package-manager, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [8.2s]
• Android SDK at /Users/macbookpro/Library/Android/sdk
• Emulator version 36.3.10.0 (build_id 14472402) (CL:N/A)
• Platform android-37.0, build-tools 36.1.0
• ANDROID_HOME = /Users/macbookpro/Library/Android/sdk
• ANDROID_SDK_ROOT = /Users/macbookpro/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: flutter config --jdk-dir="path/to/jdk".
• Java version OpenJDK Runtime Environment (build 21.0.8+-14196175-b1038.72)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 26.2) [5.5s]
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 17C52
• CocoaPods version 1.16.2

[✓] Chrome - develop for the web [14ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Connected device (3 available) [7.2s]
• Infinix X6835 (mobile) • 098113737V009830 • android-arm64 • Android 13 (API 33)
• macOS (desktop) • macos • darwin-x64 • macOS 15.7.1 24G231 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 151.0.7922.76

[✓] Network resources [1,413ms]
• All expected network resources are available.

• No issues found!

Activity

  1. suryaKommana2662 commented on Aug 10, 2026

    @suryaKommana2662
    Contributor

    @abdullah517 Thanks for the detailed report. Could you please provide a minimal reproducible example (main.dart file) and confirm whether the issue is still reproducible on the latest stable Flutter release? Also, could you please provide a video demonstration of the issue? This will help us reproduce and investigate the startup performance difference with Impeller enabled.

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    and removed
    in triagePresently being triaged by the triage team
    on Aug 10, 2026
  3. abdullah517 commented on Aug 10, 2026

    @abdullah517
    Author

    here is impeller disabled video
    https://github.com/user-attachments/assets/39a4de54-bee5-49aa-b5fc-61ad959ef1e6

    here is impeller enabled video
    https://github.com/user-attachments/assets/4e77efcf-8142-4d75-9c18-0b9db25b289d

    And here is my main.dart file

    import 'package:arealand/Providers/askaiprovider.dart';
    import 'package:arealand/Providers/bottomnavprovider.dart';
    import 'package:arealand/Providers/calculatorprovider.dart';
    import 'package:arealand/Providers/compassscreenprovider.dart';
    import 'package:arealand/Providers/livetrackingprovider.dart';
    import 'package:arealand/Providers/locationpermissionprovider.dart';
    import 'package:arealand/Providers/mapscreenprovider.dart';
    import 'package:arealand/Providers/onboardingprovider.dart';
    import 'package:arealand/Providers/unitscreenprovider.dart';
    import 'package:arealand/utils/firebaseservice.dart';
    import 'package:arealand/view/InAppPurhase/provider/in_app_purchase.dart';
    import 'package:arealand/view/Splashscreen/splashprovider.dart';
    import 'package:arealand/view/Splashscreen/splashscreen.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:in_app_purchase/in_app_purchase.dart';
    import 'package:provider/provider.dart';

    import 'view/InAppPurhase/provider/in_app_purchase_screen_controller.dart';

    void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    runApp(const MyApp());
    WidgetsBinding.instance.addPostFrameCallback((_) {
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
    FirebaseService.initialize();
    });
    }

    class MyApp extends StatefulWidget {
    const MyApp({super.key});

    @OverRide
    State createState() => _MyAppState();
    }

    class _MyAppState extends State {
    @OverRide
    void initState() {
    super.initState();
    }

    @OverRide
    Widget build(BuildContext context) {
    return MultiProvider(
    providers: [
    ChangeNotifierProvider(create: (context) => Mapscreenprovider()),
    ChangeNotifierProvider(create: (context) => Livetrackingprovider()),
    ChangeNotifierProvider(create: (context) => UnitsProvider()),
    ChangeNotifierProvider(create: (context) => BottomNavprovider()),
    ChangeNotifierProvider(create: (context) => Compassscreenprovider()),
    ChangeNotifierProvider(create: (context) => OnboardingProvider()),
    ChangeNotifierProvider(create: (context) => Calculatorprovider()),
    ChangeNotifierProvider(create: (context) => Splashprovider()),
    ChangeNotifierProvider(
    create: (context) => LocationPermissionProvider(),
    ),
    ChangeNotifierProvider(create: (context) => Askaiprovider()),
    ChangeNotifierProvider(create: () => InAppPurchaseScreenController()),
    ChangeNotifierProvider(
    create: (
    ) => InAppPurchaseController(InAppPurchase.instance),
    ),
    ],
    child: const MaterialApp(
    debugShowCheckedModeBanner: false,
    home: SplashScreen(),
    ),
    );
    }
    }

  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Aug 10, 2026
  5. suryaKommana2662 commented on Aug 10, 2026

    @suryaKommana2662
    Contributor

    @abdullah517 Thanks for report. An existing issue is already tracking this problem. Closing this issue as a duplicate of #175577, which tracks the same slow cold/warm startup performance issue caused by Impeller on Android devices. Please follow/track #175577 for further updates.

  6. added
    r: duplicateIssue is closed as a duplicate of an existing issue
    and removed
    in triagePresently being triaged by the triage team
    on Aug 10, 2026
  7. github-actions commented on Aug 24, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  8. locked as resolved and limited conversation to collaborators on Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    from: performance templateIssues created via a performance issue templater: duplicateIssue is closed as a duplicate of an existing issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions