使用申请了分析perffeto 查找卡顿

张开发
2026/6/26 17:47:14 15 分钟阅读
使用申请了分析perffeto 查找卡顿
查找最UI最卡顿的进程查找最耗时的切片。切边就是函数和调用。名字要包含Choreographer 表示在绘制。通俗解释JOIN把 slice 和 thread、process 按 id 对上号这样每条 slice 都知道是哪个进程、哪个线程。dur / 1e6纳秒换成毫秒好读。dur 16*1e6只关心超过一帧时间的片段60Hz 下一帧约 16.67ms这里用 16ms 粗筛。ORDER BY … DESC从最久的排前面。LIMIT 50只要前 50 条避免网页卡死。SELECTs.name,s.dur/1e6ASdur_ms,t.nameASthread_name,p.nameASprocess_nameFROMslice s-- 1. 先关联 track 表 (通常 slice 关联的是 thread_track)JOINthread_track ttONs.track_idtt.id-- 2. 再通过 thread_track 关联 thread 表JOINthread tONtt.utidt.utid-- 3. 最后关联 process 表JOINprocess pONt.upidp.upidWHEREs.dur16*1e6ANDs.nameLIKE%Choreographer%ORDERBYs.durDESCLIMIT50;效果查找某进程最长的操作就什么SELECTs.name,s.dur/1e6ASdur_ms,t.nameASthread_name,p.nameASprocess_nameFROMslice s-- 第一步通过 track_id 关联到 thread_trackJOINthread_track ttONs.track_idtt.id-- 第二步通过 utid 关联到 threadJOINthread tONtt.utidt.utid-- 第三步通过 upid 关联到 processJOINprocess pONt.upidp.upidWHEREp.nameLIKE%screenrecorder%ANDs.dur0-- 可选过滤掉时长为0的ORDERBYs.durDESCLIMIT30;

更多文章