-
Notifications
You must be signed in to change notification settings - Fork 364
Description
Description
A user is requesting a way to easily find the widget/s responsible for performance issues in their app.
The Performance Panel currently supports tracking widget builds, layouts, and paints to help users diagnose where their app is experiencing bottlenecks.
However, if the app has high frame rates, they can experience data loss in DevTools because the perf events overflow the ring buffer before they can analyze them.
Possible solutions
1. Table of slowest widget builds, layouts, or paints.
Along with displaying the data in the flame chart, we could also sort the data and display the slowest phases at the top of a table to help users quickly identify where their app is experiencing issues.
Estimated scope: S/M (1 week - 1 month)
2. Disabling widgets from the performance view
The user suggested a possible solution of disabling widgets from the performance view. This is a significantly more challenging request. Currently, the Flutter engine is responsible for emitting the build, layout, and paint events. The Dart VM Service listens to these events, and adds them to a ring buffer. The primary challenge here is communicating with the Flutter engine to not emit the events for certain widgets, either with a service extension registered on the framework, or perhaps an annotation that users can add to their widget source code.
Estimated scope: XL (quarter+)
See original request here