Troubleshooting app performance issues with System Trace in Android Studio

Поділитися
Вставка
  • Опубліковано 1 гру 2024

КОМЕНТАРІ • 41

  • @FelipeRRM
    @FelipeRRM 4 роки тому +5

    Excellent content and tool, will give it a try now as we are struggling with performance on some very specific phones that are not even low-end.

  • @yiyang_google
    @yiyang_google 4 роки тому +16

    0:27 System Trace Overview
    2:59 Demo starts
    3:56 How to capture a System Trace in AS
    4:35 Navigating a trace in AS
    11:06 Adding Custom Events to your app's code
    13:01 How to enable System Trace on app start-up

  • @ravinderchhaba215
    @ravinderchhaba215 2 роки тому +1

    Very nice useful, safe and secure teachings about Android devices

    • @AndroidDevelopers
      @AndroidDevelopers  2 роки тому

      Thank you so much for the positive feedback, Ravinder 😀
      Be sure to check out the links in the description for even more tips and tutorials!

  • @denisreinoso3191
    @denisreinoso3191 3 роки тому

    HUMBLE SYMMARY
    System trace helps get the full picture of the app’s runtime performance by capturing performance data from all of your layers.
    Can optional define custom events to instrument your app code to tie up functionality with the rest of all the data. In a nutshell System Trace is a tool that allows how your app interacts with system resources.
    The process is kind of:
    1. Run profiler
    2. Select area of interest
    3. Can correlate what the code is doing with the instrumentation framework
    4. Check the top-down tree view and can see the exact times of these trace events
    Also you can check the start app performance Run/Debug configurations -> start this recording at start up -> Trace system calls

  • @oleksee
    @oleksee 4 роки тому +2

    Thanks for this great video. This was very useful and the tutorial we were really missing I think.

  • @andriibogachenko2537
    @andriibogachenko2537 Рік тому +1

    Great Simple video with nice explanation! Thanks

  • @denisreinoso3191
    @denisreinoso3191 3 роки тому +2

    Amazing! you just helped me to fix a bug

  • @shuangshuangliu
    @shuangshuangliu 4 роки тому +1

    Good job bro @Yi Yang.

  • @yichu1782
    @yichu1782 3 роки тому +1

    It would be great if the Android Studio System Trace adds more information such as SurfaceView or SurfaceTexture like the Old systrace tools do

    • @yichu1782
      @yichu1782 3 роки тому

      @Android Developers, @Yi Yang

    • @yiyang_google
      @yiyang_google 3 роки тому

      @@yichu1782 SurfaceView in the old systrace actually represents the depth of BufferQueue, so in Android Studio 4.2 we added a BufferQueue track in the Display section. As for SurfaceTexture, I'm actually not familiar with what it represents in the old systrace. Can you elaborate?

  • @LacuevadelprogramadorOficial
    @LacuevadelprogramadorOficial 4 роки тому

    this will help me understand the performance

  • @alexneeky7920
    @alexneeky7920 4 роки тому

    Awesome, more real world examples would be great

  • @mohammadtahirshaikh7132
    @mohammadtahirshaikh7132 4 роки тому

    I cannot get option to new navigation gesture > I have latest Android 10 on my redmi note 8 pro handsets why but any problem

    • @yiyang_google
      @yiyang_google 4 роки тому

      Some of the features are in Android Studio 4.1 Beta. Feel free to try it out: developer.android.com/studio/preview/

  • @usabilist
    @usabilist 3 роки тому

    What could be a reason that Frames/SurfaceFlinger/VSYNC are empty for me? (Studio 4.1.3)

    • @yiyang_google
      @yiyang_google 3 роки тому

      What's your device's API level? Frame data are available on Android O or later. SF and VSYNC are available on Android Q or later.

    • @usabilist
      @usabilist 3 роки тому

      @@yiyang_google Android Q. I assume other prerequisites must be fulfilled, like vendor GPU driver supporting some features, no?

    • @yiyang_google
      @yiyang_google 3 роки тому

      @@usabilist Can you open a bug by going to Help -> Submit Feedback? In the bug, upload your trace file (if you don't want the file to be public we can set up a shared folder) so we can investigate. Thanks!

    • @usabilist
      @usabilist 3 роки тому

      @@yiyang_google Sorry do not think it is possible, it is a closed project behind NDA. I hoped to understand more what is required to enable those features but if you do not have the answer we should stop.

    • @yiyang_google
      @yiyang_google 3 роки тому +1

      @@usabilist I understand. Another place to check is the main thread in the Threads section. If you can't find Choreographer#doFrame events in the call chart, it might explain why Frames is empty for you. That could mean either your app is not using Choreographer, or the OEM has a custom implementation.

  • @mwshubham
    @mwshubham 4 роки тому

    Does progress dialog causes frozen frames?

  • @xiangzhongchang2663
    @xiangzhongchang2663 4 роки тому

    @Yi Yang great work!

  • @noliebowtie1315
    @noliebowtie1315 3 роки тому

    I learned a lot from this, thanks!

  • @anesabismail6111
    @anesabismail6111 4 роки тому

    Great tool and explanation.

  • @mwshubham
    @mwshubham 4 роки тому

    Great Video. Thank you so much.

  • @bignorth5197
    @bignorth5197 2 роки тому

    please offer your demo code.

  • @mohamedsalama2743
    @mohamedsalama2743 2 роки тому +1

    Great Video!

    • @AndroidDevelopers
      @AndroidDevelopers  2 роки тому

      Thank you very much, Mohamed! We're glad you have enjoyed the video. If you'd like to learn additional resources, check out the System Tracing documentation here: goo.gle/3T8JHke
      Happy learning 😁

  • @halcyonramirez6469
    @halcyonramirez6469 3 роки тому

    Is it possible to convert the trace to an automation friendly format?
    such as JSON?
    After the loading the trace all you can do is look at it. You can't even copy the node names on the clipboard
    is it possible to somehow be able to export the parsed trace to JSON or something?
    It could help with analytics of current and previous performance by comparing traces programmatically

    • @yiyang_google
      @yiyang_google 3 роки тому

      Thank you for the feedback. A trace file contains a huge amount of data so we need to understand exactly what information is useful for export. Can you open a feature request here (issuetracker.google.com/issues/new?component=192708&template=840533) and elaborate on the kind of data you're interested in? Thanks!

    • @yiyang_google
      @yiyang_google 3 роки тому

      Meanwhile, Perfetto (perfetto.dev/docs/quickstart/trace-analysis) provides a SQL like interface for querying certain data from a system trace (also works on trace files captured in Android Studio), see if it helps in your case.

  • @MrDanamiel
    @MrDanamiel 4 роки тому

    keep repeating the video and still dont know how to start profiler here @_@

    • @shukangzhou109
      @shukangzhou109 4 роки тому

      To start profilers in Android Studio, choose View > Tool Windows > Profiler or click Profile in the toolbar. Here is the official doc to Android Studio profilers: developer.android.com/studio/profile/android-profiler. What this video focuses on, System Trace, is in the CPU profiler.

  • @lukeyd2000
    @lukeyd2000 3 роки тому

    10:57 [INAUDIBLE] translates to "app code"

  • @Patriqu
    @Patriqu 4 роки тому

    Great tool!

  • @pembatamang8233
    @pembatamang8233 4 роки тому

    great video

  • @PalCan
    @PalCan 3 роки тому

    Why do I understand this. I'm a pharmacist for Gods sake. 😅

  • @BillyDaGoat783
    @BillyDaGoat783 7 місяців тому

    Now I will go destroy my phones operating system...wish me luck!