TraceView的使用

部署运行你感兴趣的模型镜像

Traceview是android平台配备的一个性能分析工具,通过图形化的方式让我们了解程序的性能,并且能具体到method。
使用方法有两种:
1:在代码中追踪

//追踪开始
Debug.startMethodTracing();
//追踪开始
Debug.stopMethodTracing();

在你想开始监听的时候调用Debug.startMethodTracing();结束的时候调用Debug.stopMethodTracing();
比如说想监听在Activity活动的时候都有哪些方法运行,各自花费了多久时间,则可以再onResume中调用start,在onPause中调用stop

@Override
protected void onResume() {
     Debug.startMethodTracing();
     super.onResume();
}

@Override
protected void onPause() {
     Debug.stopMethodTracing();
     super.onPause();
}

运行完毕后会在sdcard目录下生成dmtrace.trace文件
2:在DDMS中追踪
首先是开始的时候选中想要追踪的应用,点击上面的Start Method Profiling按钮
这里写图片描述

接着选择Trace based profiling,点击OK

这里写图片描述

现在就开始追踪了,如果追踪完毕的话,就点击第一步时的按钮,现在是Stop Method Profiling

这里写图片描述

之后生成的trace文件会在ddms中自动打开

这里写图片描述

上面显示的就是在追踪的这一段时间内方法的调用情况

其中各个参数的含义分别是:

这里写图片描述

当程序出现卡顿现象的时候,我们就可以通过TraceView来分析到底是哪个方法占用了时间
程序出现卡顿一般分为两个情况
一种是存在单次调用花费时间不长,但是会频繁调用的方法
一种是存在调用次数不多,但是每次调用却需要花费很长时间的方法
通过查看trace文件中各个方法的Calls+RecurCalls/Total这一列,我们可以了解到这一段时间内方法的调用次数,以此来判断第一种情况。
第二种情况我们则需要通过Cpu Time/Call和Real Time/Call这几列来进行判断
Real Time/Call可以判断单次方法在实际中的执行时间,如果执行时间较长,我们还可以通过和Cpu Time/Call进行对比,如果两者的值接近,则说明时间都花在执行任务上了,那说明我们需要优化的是方法本身的逻辑;如果两者相差较大,则说明时间都花费在等待上了,我们需要思考的就是方法在等待什么,是不是同步锁的问题什么的

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值