前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[061]perfetto使用简介

[061]perfetto使用简介

作者头像
王小二
发布2020-11-12 11:23:23
5.6K1
发布2020-11-12 11:23:23
举报
文章被收录于专栏:王小二的Android站

前言

之前我基本上都是用systrace分析Android性能问题,但是最近发现常常发生trace无法抓完整的问题,我开始使用新的perfetto工具,写一个文章记录一下。

一、使用方法

1.1 打开perfetto的设置界面

方法1:adb指令(如果闪退,请开启开发者选项 )
代码语言:javascript
复制
adb shell am start com.android.traceur/com.android.traceur.MainActivity
方法2:打开Settings->System->Developer options->System Tracing

你会看到如上的界面,介绍各个选项的作用:

代码语言:javascript
复制
Record trace
开启和关闭trace功能
代码语言:javascript
复制
Trace debuggable applications
开启和关闭支持debuggable的应用的自定义trace
代码语言:javascript
复制
Categories
选择Trace Categories
代码语言:javascript
复制
Restore default categories
回复默认的Trace Categories
代码语言:javascript
复制
Per-CPU buffer size
每一个CPU的buffer大小,一般情况下不用改大 ,如果发现Trace有丢失
或者在userdebug手机上抓取trace,最好增大一下,避免trace的丢失。
代码语言:javascript
复制
Clear saved traces
清除手机里已经存储的trace文件
代码语言:javascript
复制
Long traces
一般我们抓的trace,都只会记录开启Record trace之后30s的trace。
对于需要长时间跟踪的,可以开启这个选项
并且配置下方的Maximum long trace size和Maximum long trace duration

1.2 点击Record trace按钮

我们一般可以用默认的设置,根据自己的需要调整

1.3 复现性能有问题的场景

在30秒内复现性能有问题的场景

1.4 下拉状态栏,点击关闭trace,等待trace文件保存

Screenshot_2020-11-03-03-00-27-183.jpg

1.5 导出trace文件

代码语言:javascript
复制
adb pull data/local/traces

1.6 打开分析网站并打开trace文件进行分析

用Chrome打开如下网址,并点击左上角的Open trace file就可以分析了。 快捷键的方式基本和Systrace的查看方式差不多。

代码语言:javascript
复制
https://ui.perfetto.dev/#!/viewer

二、简单实战

2.1 制造性能BUG

我在Activity的onResume中sleep 3s,当然实际问题会比这个复杂的多。

代码语言:javascript
复制
    @Override
    protected void onResume() {
        super.onResume();
        try {
            Thread.sleep(3000);
        } catch (Exception e) {
            
        }
    }

2.2 按照第一节中介绍的方法抓取trace分析

可以很明显的发现在activityResume Sleep了3s,因为你会发现activityResume上面一段是空白的,而不是绿色,说明线程处于休眠的状态,对照代码,就可以很快发现BUG在哪里。

三、总结

优点:

1.界面漂亮,我最喜欢使用漂亮的UI 2.流畅,打开较大的trace文件比systrace优秀太多 3.Binder跨进程点击跳转,跟踪方便,不需要类似systrace的头发丝一样的跟踪Binder跳转 4.支持置顶你感兴趣的线程,放在一起分析更容易 5.看线程被谁唤醒非常方便

其他优缺点需要继续发现

四、尾巴

有时候还是要跳出舒适的旧事物去接受新事物,可能结果就是真香。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、使用方法
    • 1.1 打开perfetto的设置界面
      • 1.2 点击Record trace按钮
        • 1.3 复现性能有问题的场景
          • 1.4 下拉状态栏,点击关闭trace,等待trace文件保存
            • 1.5 导出trace文件
              • 1.6 打开分析网站并打开trace文件进行分析
              • 二、简单实战
                • 2.1 制造性能BUG
                  • 2.2 按照第一节中介绍的方法抓取trace分析
                  • 三、总结
                    • 优点:
                    • 四、尾巴
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档