Skip to content

task info

Carlyle-Lee edited this page Jul 10, 2020 · 3 revisions

任务分析

支持展示任意时间段之间的任务运行情况。阶段内活跃的线程情况等。

功能简要
  • 阶段抓取到的任务展示
  • 阶段内抓取到的运行任务时间戳展示
  • 阶段内抓取到的线程,线程创建信息,任务在线程上的分布图展示
  • 版本分析对比功能。

img img img

使用方法:
  • Lens 初始化时,为Lens 设置hook 框架实现类。
  • 进入Lens 设置页面,开启任务分析功能或者在Lens 初始化的时候开启任务分析功能。
  • 点击任务分析的任务耗时栏,进入任务分析界面。(带背景的文本都可点击跳转)
  • 页面中三个Tab 支持点击切换与左右滑动切换。
  • Gap 页面中,点击Cost、 CPU_T、ST 支持排序。
  • 搜索框支持搜索并高亮展示结果。
  • 保存数据后,支持与历史版本进行分析对照。
如何接入hook能力与使用:

Lens 本身并未提供hook 能力。任务分析功能对外暴露了TimeStampUtil 类用于侵入性的打点分析。并提供了任务分析入口,数据展示等能力。
TimeStampUtil 类信息,详见API 文档。
说明: 开源项目Yhook 实现了Lens hook 相关能力的支持。引入后即可支持Lens 分析功能。也可以自行实现IHookFramework接口,自行hook 埋点,实现任务分析能力。
注意: hook 有风险,hook 能力请在debug 下使用。

Yhook接入方法:

gralde dependency

dependencies {
	   debugImplementation 'carl.lee.yhook:lens-yhook:1.1.0'
	}

Lens init:

LensUtil.buildConfig().setHookFrameWorkImpl(new HookFramework())
Clone this wiki locally