当前位置: 首页 > java >正文

PerfettoSQL

​​​​# Device State: Top App

# select id, ts, dur, name from (__query_slice_track__long_battery_tracing_Device_State_Top_app)

--> 简便方法
"""
INCLUDE PERFETTO MODULE android.battery_stats;
select * from android_battery_stats_event_slices where track_name='battery_stats.top';
"""--> 原始数据
"""
CREATE PERFETTO VIEW android_battery_stats_event_slices (-- Start of a new battery state.ts TIMESTAMP,-- The duration the state was active, -1 for incomplete slices.dur DURATION,-- The same as `dur`, but extends to trace end for incomplete slices.safe_dur DURATION,-- The name of the counter track.track_name STRING,-- String value.str_value STRING,-- Int value.int_value LONG
) AS
WITHevent_markers AS (SELECTts,track.name AS track_name,str_split(slice.name, '=', 1) AS key,substr(slice.name, 1, 1) = '+' AS startFROM sliceJOIN trackON slice.track_id = track.idWHEREtrack_name GLOB 'battery_stats.*' AND substr(slice.name, 1, 1) IN ('+', '-')),with_neighbors AS (SELECT*,lag(ts) OVER (PARTITION BY track_name, key ORDER BY ts) AS last_ts,lead(ts) OVER (PARTITION BY track_name, key ORDER BY ts) AS next_tsFROM event_markers),-- Note: query performance depends on the ability to push down filters on-- the track_name. It would be more clear below to have two queries and union-- them, but doing so prevents push down through the above window functions.event_spans AS (SELECTtrack_name,key,iif(start, ts, trace_start()) AS ts,iif(start, next_ts, ts) AS end_tsFROM with_neighbors-- For the majority of events, we take the `start` event and compute the dur-- based on next_ts. In the off chance we get an end event with no prior-- start (matched by the second half of this where), we can create an event-- starting from the beginning of the trace ending at the current event.WHERE(start OR last_ts IS NULL))
SELECTts,coalesce(end_ts - ts, -1) AS dur,coalesce(end_ts, trace_end()) - ts AS safe_dur,track_name,str_split(key, '"', 1) AS str_value,cast_int!(str_split(key, ':', 0)) AS int_value
FROM event_spans;select * from android_battery_stats_event_slices where track_name='battery_stats.top';
"""

# Android APP Startups

# select id, ts, dur, name from (__query_slice_track__android_startups)

-->
"""
INCLUDE PERFETTO MODULE android.startup.startups;
SELECT * FROM android_startups;
"""

http://www.xdnf.cn/news/1121.html

相关文章:

  • 火山引擎实时语音合成WebSocket V3协议Python实现demo
  • redis数据类型-基数统计HyperLogLog
  • 搜索引擎的高级语法
  • 前端性能优化全攻略:JavaScript 优化、DOM 操作、内存管理、资源压缩与合并、构建工具及性能监控
  • 复刻低成本机械臂 SO-ARM100 3D 打印篇
  • RHCE 作业二(密钥登录实验)
  • XPath 语法入门
  • day35图像处理OpenCV
  • docker镜像新增加用户+sudo权限,无dockerfile
  • osxcross 搭建 macOS 交叉编译环境
  • LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
  • [特殊字符]【Qt自定义控件】创意开关按钮 - 丝滑动画+自定义样式+信号交互 | 附完整源码
  • 人工智能在PET-CT中的应用方向探析
  • 环境变量(Linux)
  • SparkStreaming概述
  • C# MP3 伴奏
  • MYSQL之库的操作
  • C++设计模式
  • Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介
  • MongoDB常用命令
  • 01-STM32基本知识点和keil5的安装
  • 【白雪讲堂】[特殊字符]内容战略地图|GEO优化框架下的内容全景布局
  • 7N60-ASEMI无人机专用功率器件7N60
  • Elasticsearch 使用reindex进行数据同步或索引重构
  • spark jar依赖顺序
  • Docker--Docker网络原理
  • docker容器中uv的使用
  • ARM汇编的LDM和STM指令
  • 【sylar-webserver】重构 增加内存池
  • weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博,微博登录