Flutter performance basics

What is performance? Why is performance important? How do I improve performance?

Our goal is to answer those three questions (mainly the third one), and anything related to them. This document should serve as the single entry point or the root node of a tree of resources that addresses any questions that you have about performance.

The answers to the first two questions are mostly philosophical, and not as helpful to many developers who visit this page with specific performance issues that need to be solved. Therefore, the answers to those questions are in the appendix.

To improve performance, you first need metrics: some measurable numbers to verify the problems and improvements. In the metrics page, you’ll see which metrics are currently used, and which tools and APIs are available to get the metrics.

There is a list of Frequently asked questions, so you can find out if the questions you have or the problems you’re having were already answered or encountered, and whether there are existing solutions. (Alternatively, you can check the Flutter GitHub issue database using the performance label.)

Finally, the performance issues are divided into four categories. They correspond to the four labels that are used in the Flutter GitHub issue database: “perf: speed”, “perf: memory”, “perf: app size”, “perf: energy”.

The rest of the content is organized using those four categories. (Note that these docs are in the process of being expanded.)


Are your animations janky (not smooth)? Learn how to evaluate and fix rendering issues.

Improving rendering performance


Using memory wisely

App size

How to measure your app’s size. The smaller the size, the quicker it is to download.

Measuring your app’s size