191_TraceView的使用

TraceView的使用

 

TraceView是什么

 

Traceview Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot

(瓶颈)。Traceview 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用

DDMS 工具。

 

debug类和ddms的采集方法

 

 

debug采集方法

 

我们先在一些关键的代码前面调用

Debug类的startMethodTracing方法

然后在结束前调用

stopMethodTracing

 

这两个方法就采集了这段采集时间  这个应用所有线程(java线程)的函数执行情况

然后保存到/mnt/sdcard下的一个文件夹下,

然后我们用TraceView工具类分析这些数据

 

 

ddms采集方法

 

我们点ddms窗口,点左边Devices窗口,我们可以看到一排功能  STOP红色按钮的左边

有两个按钮  都是3个带圆圈的箭头

右边的还多一个红色的圆圈

 

左边的按钮是update Threads

右边的按钮是 start method profiling 这个就是我们要的按钮了

可以控制开始和停止采集数据

 

停止采集数据后ddms会自动触发TraceView工具

 

 

 

TraceView的使用

 

 

我们来一个实验,

第一是熟悉TraceView的使用,

第二是我们看看实验结果看看哪个操作最耗时间

 

我们来个最简单的工程,4button

每个button都执行最简单的操作

 

第一个,就是循环输出

public void method1(View view) {

int result = jisuan();

System.out.println(result);

}

 

private int jisuan() {

for (int i = 0; i < 10000; i++) {

System.out.println(i);

}

return 1;

}

 

第二个,就是主线程睡个2

public void method2(View view) {

SystemClock.sleep(2000);

}

 

第三个,循环累加一下

public void method3(View view) {

int sum = 0;

for (int i = 0; i < 1000; i++) {

sum += i;

}

System.out.println("sum=" + sum);

}

 

第四个,来个Toast

public void method4(View view) {

Toast.makeText(this, "" + new Date(), 0).show();

}

 

 

 

实验过程

 

我们先点击ddmsStart Method Profiling按钮,就是刚刚说的那个

这样就开始采集数据了

然后我们点击4button,这样就依次执行了这4个操作

然后我们再点按钮,停止采集数据

 

刚刚说了,停止后会自动触发

这时候就弹出一个图表,

这个图表分为2个部分,

上面的部分是好多个行,每一行就是一个线程,我们只要看主线程就行了,点一下主线程

下面是每个方法消耗的时间

 

我们点击线程之后看下面的界面

 

我们看最前面的两个参数

Incl Cpu Time 就是占用cpu的时间

第一个参数是占用时间的百分比

第二个参数就是Incl Cpu Time 占用的时间

 

我们点击Incl Cpu Time,让最多的排前面

 

我们就发现我们的Method1排在第七位,前面是很多我们系统的方法

 

OK,我们现在就发现了Method14个方法中最耗时的,用了2338毫秒

想不到这么慢,我还以为Method22秒是最慢的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值