TraceAnalysis
TraceAnalysis copied to clipboard
Traceview解析工具
TraceAnalysis
traceview分析工具(android)
- 该工具可以把对应
trace的方法耗时/调用堆栈以及线程关系给解析出来 - 主要用于在两次版本迭代时,为了迅速找到新版本新增的方法以及异常的方法耗时,可以使用默认的
sheet_analysys.py来生成报表
使用方式
前置操作
在config.py中配置基准traceview路径以及对比traceview路径,如果需要解混淆,配置对应mapping文件路径,目前已自带解mapping工具
结果输出
有两种方式
- 通过
TraceUtils(...).anti_mapping.analysis.get("dict")可以获取解析结果,结果是一个dict/json,格式为
{
"inclusive": "xx",
"exclusive": "xx",
"method_thread": "xx",
"theads_pid": "xx",
"call_times": "xx",
"costs": "xx",
"sorted_dic": "xx"
}
- 使用默认的报表对比方法,该方法直接对比两个trace文件的方法,过滤出新增的方法,以及同一个方法的耗时差对比,入口为
sheet_analysis.py,通过render.py来将结果渲染成csv文件
注意事项
config.py的WATCH_MODULES可以用来设置需要关注的模块,采用此配置可以在解析中过滤出我们不需要关心的包或者模块中的方法config.py的MAPPING_FILE用于配置反混淆mapping(如果不配置,则不会反混淆),默认采用convertutil.jar来生成混淆前的trace文件,如果修改TraceHandler中的anti_mapping函数