Skip to content

Improve performance measurement usability #102189

Closed as not planned
Closed as not planned

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

Activity

  1. added
    a: tests"flutter test", flutter_test, or one of our tests
    frameworkflutter/packages/flutter repository. See also f: labels.
    engineflutter/engine related. See also e: labels.
    c: performanceRelates to speed or footprint issues (see "perf:" labels)
    a: devtoolsDevTools related - suite of performance and debugging tools
    P2Important issues not at the top of the work list
    on Apr 20, 2022
  2. ueman commented on May 10, 2022

    @ueman
    Contributor

    Ideally I'd like to have this data also available in release builds, so I can integrate this data with application performance monitoring tools, like Sentry, DataDog and so on.

    How much time was spent in network or disk IO from dart:io

    I'm currently experimenting with using HttpOverrides and IOOverrides to achieve this. That works quite good.

  3. dnfield commented on May 11, 2022

    @dnfield
    ContributorAuthor

    Is it that you want to test in release, or you want your release app sending back metrics for use?

  4. ueman commented on May 11, 2022

    @ueman
    Contributor

    Is it that you want to test in release, or you want your release app sending back metrics for use?

    The latter one. I want to send back metrics for use.

  5. marandaneto commented on May 11, 2022

    @marandaneto

    It'd be awesome if at runtime you could collect telemetry data and send it over to observability services such as sentry.io to aggregate and extract information about the performance of your app and compare it across new versions of the app, device models, brands, etc...

  6. github-actions commented on Feb 22, 2025

    @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.

  7. locked as resolved and limited conversation to collaborators on Feb 22, 2025
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

    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