Perfetto 使用 - SQL 快捷的查询性能数据
本文基于 Perfetto 中的常用SQL语句进行讲解,不深入SQL语言本身。
好了,介绍到此为止,进入正文。
UI 展示

select dur,ts,name from slice
//ts: 展示timestamp 时间戳
//dur: 表示需要询问的事件的时长
//name: 表示查询的对象名
//slice: 表示 trace 上一段时间的事件集合

SQL基本用法
在Perfetto中使用最多的是条件查询SQL,运行的顺序是:
①from语句 ②where语句 ③select语句。
select <列名1>,<列名2>,<列名3>,...
from <表名>
where 条件
列举一些常用的条件查找的语法。
为列名设置别名 - as,将表table1中 name列名 修改为“名称”。如下,
select name as '名称'
from table1
在select选择语句中进行算数计算,将dur列下的时间单位变成秒(将微秒除以10的6次)。
select (dur/1e6),ts,name from slice
在where条件语句中支持字符串模糊查找,使用关键字:LIKE
_表示任意一个字符;%表示任意字符串。
注:使用like查找时,尽量在字符串前后都加 % ,如果在某个位置不加%,会默认该位置是精确查找,可能造成查找失败。
模糊查找名字大概为doTraversals线程的耗时,如下,
select (dur/1e6) from slice where name like "%doTraversals%"
示意用例
select (dur/1e6) from slice where name like "%still%" order by dur desc

分析语句:通过 %still% 模糊查找到 still capture这个线程的耗时,并且使用order by dur desc 进行降序排列。
获取平均时间,可以在select语句中使用算数计算,使用关键字 avg 即可。
select avg(dur/1e6) from slice where name like "%still%" order by dur desc

浙公网安备 33010602011771号