Skip to content

Improve performance measurement usability #102189

@dnfield

Description

@dnfield

As a developer, I want to run some portion of my app and get information about:

  • How many frames were rendered
    • Average/P90/P99 build times
    • Average/P90/P99 raster times
    • Information about the top N worst build/raster frames
  • How much time was spent in network or disk IO from dart:io
    • The ability to break this down by what files/hosts were accessed and how long it took
  • How much time was spent in platform channels
    • The ability to break this down by channel name/method call
  • GC stats:
    • Total UI thread time in GC
    • Total time of other thread(s) in GC
    • How many GCs ran/what types
  • Average/P90/P99 memory usage during the run
  • Average/P90/P99 CPU usage during the run
  • Average/P90/P99 GPU usage during the run

I would like to get this information with minimal impact on actual performance of my application.

A lot, but not all of this information is available in the timeline today. Some of this information is currently provided on some platforms, whereas on other platforms it is missing or only available via polling that devtools may do.

It would probably be best to start with some of our existing performance benchmarks and see what we can do to get the output to look more like this. We should also evaluate whether we can use timeline/perfetto tracing or not and how much of an impact it is having on performance as part of this bug.

/cc @gaaclarke @iskakaushik - I think this intersects with some of the work you're currently doing.
/cc @jiahaog fyi
/cc @kenzieschmoll @polina-c @jacob314 for devtools input

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: devtoolsDevTools related - suite of performance and debugging toolsa: tests"flutter test", flutter_test, or one of our testsc: performanceRelates to speed or footprint issues (see "perf:" labels)engineflutter/engine related. See also e: labels.frameworkflutter/packages/flutter repository. See also f: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions