大家好,欢迎来到IT知识分享网。
TraceView 是什么?
TraceView 是 Android SDK 中内置的一个工具,用于加载 trace 文件,用图形的形式展示代码的执行时间、调用次数及调用栈,便于我们分析。
如何生成 trace 文件?
使用代码生成
Debug.startMethodTracing(trace"); //trace文件保存到 "/sdcard/trace.trace"
// ...
Debug.stopMethodTracing(); //结束
当调用开始代码的时候,系统会生产 trace 文件,并且产生追踪数据,当你调用结束代码时,会将追踪数据写入到 trace 文件中。
adb 命令将 trace 文件导出到电脑
adb pull /sdcard/trace.trace /tmp
- 选定范围:确定要在跟踪窗格中检查的记录时间部分。
- 时间戳记:指示记录的跟踪的开始和结束时间。
- 跟踪窗格:显示所选时间范围和线程的跟踪数据。
- 时间参考菜单:选择以下一项以确定如何测量每个呼叫的时间信息:
Wall Clock Time(挂钟时间):时间信息表示实际经过的时间。
Thread Time(线程时间):当线程不消耗CPU资源时,时序信息表示实际经过的时间减去该时间的任何部分。对于任何给定的调用,其线程时间始终小于或等于其挂钟时间。使用线程时间可以使您更好地了解给定方法或函数消耗了多少线程的实际CPU使用率。
- 跟踪窗格选项卡:选择如何显示跟踪详细信息。
- 表示当前埋点的代码有5个线程。可以点击任何一个线程查看
上面的图中需要注意几点:这里的图标表示,比如2个方法A和B。方法A调用方法B,那么方法A就在方法B的上方。
- 橙色:表示系统API方法调用
- 绿色:表示自身方法调用
- 蓝色:表示第三方调用
Flame Chart以一个全局的视野来看待一段时间的调用分布,它就像给应用程序拍X光片,可以很自然地把时间和空间两个维度上的信息融合在一张图上。把相似或相同的方法统计在一起,比如A方法调用B方法调用C方法:A->B->C,那么他会将所有按此顺序的方法收集在一起,或者将A->B->D也会收集在上,横轴表示的是相对时间。
点开initPalmID() -> 显示了onCreate();也就是说谁调用了我。onCreate()方法里调用initPalmID();
表示onCreate里的一些情况。
- Total:表示onCreate函数所有执行需要的时间
- Self: 表示onCreate函数里,除了调用别的函数方法外,自己方法内代码的执行时间
- Children: 表示onCreate函数里,调用别的函数所执行的时间
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25596.html