[转]就这一次看懂TraceView

性能分析工具 Android TraceView TraceView是什么Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。 阅读详情

https://blog.youkuaiyun.com/yinzhijiezhan/article/details/80167283

一、TraceView的用处

TraceView用于分析计算性能,流入某个方法过于耗时导致UI卡顿,或者某个方法调用次数过多,或者某个方法虽然并不占用太多内存但是占用了大量的CPU资源等等。
 

二、获取TraceView文件的三种方式

1:方式一:通过代码获取

 

 

a:在你想要检测的某段代码的开始位置调用
Debug.startMethodTracing("custom");
其中custom可根据需要自定义,其实就是生成的TraceView文件的文件名,例如custom.trace
b:在你想要检测的某段代码的结束位置调用
Debug.stopMethodTracing();
结束检测没有参数。
注意:这两行代码要在同一个线程成对出现。
c:通过以上设置运行代码后就会在手机里生成/sdcard/custom.trace文件

 

后面会着重讲打开.trace文件且分析.trace文件的方法。
 

2:方式二:通过Android Studio的Monitor的CPU模块生成

 

b:根据需要操作一下app,再点击该按钮Stop Method Tracing,则检测区间结束,Studio会打开.trace文件的查看窗口,
这个.trace文件在你app项目的captures目录下。
c:这个窗口界面并不友好,也不好用,我们不直接观察这个界面,所以我们像方式一一样将这个.trace文件保存到某个目录。
这里为了和上面的方式一统一,我也把这个文件保存到D:\folder,并且重命名为custom.trace文件。
后面会着重讲打开.trace文件且分析.trace文件的方法。
 

3:通过Tools --> Android --> Android Device Monitor获取

 

 

c:分析完成后会打开.trace文件如下图,这个界面的底部的搜索功能不可用,而且我们经常需要搜索功能,所以我的习惯也是
不采用这种方式产生的.trace文件。

到此,三种获取.trace文件的方式讲完了,第一种方式和第二种方式我们都获取到了.trace文件,第三种方式我一般不采用。
 

三:分析trace文件

前面讲到的方式一方式二我们获取到了.trace,下面讲解如果打开并分析该.trace文件

 

 

 

 

 

 

Incl Cpu Time%
Incl Cpu Time
某函数占用的CPU时间,包含内部调用其它函数的CPU时间

Excl Cpu Time% 
Excl Cpu Time
某函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间
结论:父方法的Incl Cpu Time = 父方法的Excl Cpu Time + 子方法的Incl Cpu Time....  省略号说明一个方法可以调用多个方法

Incl Real Time%
Incl Real Time
某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间

Excl Real Time%
Excl Real Time
某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间
结论:父方法的Incl Real Time = 父方法的Excl Real Time + 子方法的Incl Real Time....省略号说明一个方法可以调用多个方法

Call+Recur Calls/Total
没展开某个方法时:
会显示该方法被程序员主动调用次数,以及被自身递归调用次数;例如:2+3,程序员调用两次,自己递归调用3次
展开某个方法时:
父方法会显示:其调用(程序员主动调用,非递归)该方法的次数/该方法的总次数,例如:2/5,说明该方法总共被调用5次其中父方法主动调了他2次
子方法会显示:子方法被其调用(程序员主动调用)的次数/子方法被调用的总次数,例如1/5
注意:这里的程序员主动调用是指,你看到的代码调用了几次就是几次,并不包括代码运行中的递归
例如funcA(){
funcD();
funcB();
funcB();
}
这里程序员主动调用了两次funcB()一次funcD(),并没有管funcB()有没有递归的情况。
再例如funcB(){
funcB();
funcB();
}
这里funcB()产生了递归,但是程序员在funcB()中只主动调用了2次funcB();不管funcB()递归了多少次。

Cpu Time/Call
某函数的Incl Cpu Time与调用次数的比。相当于该函数平均执行时间,注意不是Excl Cpu Time;

Real Time/Call
某函数的Incl Real Time与调用次数的比。相当于该函数平均执行时间,注意不是Excl Real Time;

注意:这些列可以左右拖动调换位置

 

 

Andorid性能优化之traceview的使用(不懂揍我) 一、traceview的使用方式有2种方式 这2种方式可以根据场景,去选择哪一种方式。最终效果是一样的 通过手动埋点 Profile 1.1、通过手动埋点。 步骤1: 比如我们知道在点击一个按钮的时候,会有卡顿,那么就可以用 //可以用以下代码测试你的代码。 //开始埋点,“app”是最后生成的性能分析文件 Debug.startMethodTracing("App"); //埋点结束,期间start 到 stop 之间的代码,就是你要测试的代码范围 Debug.stopMethodTraci 阅读详情

相关推荐

Android性能分析工具之TraceView的使用

通过TraceView,开发人员可以记录应用程序的性能数据,并可视化为方法调用树,从而帮助找出性能问题和优化方向。通过观察生成的方法调用树,你可以看到每个方法的执行时间和调用关系,从而找到性能瓶颈和优化的方向。TraceView是Android平台上的一款性能分析工具,它可以帮助开发人员分析应用程序的性能瓶颈,并找出其中的性能问题。本文将介绍TraceView的基本用法,并提供相应的源代码示例。在性能分析工具中,选择"CPU"选项卡,并点击"Start Profiling"按钮开始记录应用程序的性能数据。

PixelDyno的博客 880

正确姿势使用TraceView工具

           正确姿势使用TraceView工具    在对手机应用性能分析和定位的过程中Traceview是使用最多的一个工具,在遇到启动时间长界面切换时间长特别卡顿的时候Traceview是首选工具。如果查看界面的帧率问题建议还是先使用GPU配置文件以列表的形式展示在屏幕上这样可以首先发现这个界面的帧率是否有问题再做后续的排查。 如何开启TraceView   ...

IT先森 6435

Android性能分析:Traceview实用教程

本文还有配套的精品资源,点击获取 简介:Traceview.bat是Android SDK中的一个工具脚本,用于启动Traceview图形化性能分析工具,用于深入理解应用的执行性能。当在SDK的tools文件夹中缺失该脚本时,会导致无法通过DDMS使用Traceview工具。Traceview能够可视化应用的Java层方法调用时间,帮助开发者定位性能瓶颈。它提供调用树视图、...

weixin_36487018的博客 1022

traceview使用总结

文章目录1.traceview的用途2.生成trace文件的三种方式(1)代码生成(2)使用android studio生成(3)DDMS生成3.使用traceview打开trace文件4.分析trace文件 1.traceview的用途 traceview是Android sdk中的一个工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它将traceview文件转为图形,直观的反应出代码的执行...

米小阳的博客 1万+

第10章:位同步与Gardner环路(1)

第10章(1)内容如下:一、位同步与载波同步的区别1、采样时钟相位偏差的影响2、采样时钟频率偏差的影响二、Gardner环路算法与插值方法1、插值滤波器2、Gardner误差检查算法三、Gardner环路中环路滤波器与数字振荡器设计1、环路滤波器2、数控振荡器(NCO)四、Gardner环路的可运行MATLAB代码五、参考资料六、致谢 最近搞懂了Gardner环路的一些知识,于是更新第10章——位同步。 如果你稍不留意的话,这可能是你在网上能看到的介绍Gardner环路及其MATLAB仿真最详细的一篇文章了

weixin_44283855的博客 1万+

跟着团子学SAP PS:BOM和项目结构的联动-BOM Transfer CN33

关于项目中的物料组件挂接你需要了解的一点功能

Lucas1211的博客 2万+

就这一次看懂TraceView

一、TraceView的用处TraceView用于分析计算性能,流入某个方法过于耗时导致UI卡顿,或者某个方法调用次数过多,或者某个方法虽然并不占用太多内存但是占用了大量的CPU资源等等。二、获取TraceView文件的三种方式1:方式一:通过代码获取case R.id.bt_trace_view: Debug.startMethodTracing("custom"); start...

yinzhijiezhan的专栏 6527

无人驾驶-2024-09-智能驾驶与机器视觉09:视觉与多传感器融合

从本章开始,我们将详细介绍视觉与多传感器融合技术。自动驾驶中常用的传感器都有其优势和局限性,单一传感器无法应对复杂的驾驶场景。多传感器融合技术旨在综合利用不同的传感器优势,提升感知的精度和鲁棒性。本章首先介绍多传感器融合的相关概念,之后详细介绍典型的融合方法。

u013250861的博客 593

TraceView总结

<br />一、TraceView简介<br />      TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。<br />      TraceView是图形化的工具,最终它会产生一个图表,用于对性能分析进行说明。<br />      TraceView可以跟踪到具体的Method<br /> <br /> <br />二、TraceView的原理<br />      TraceView通过修改code,在需要调试的起始位

Sunny的小窝 2万+

【VibeCoding系列】小白入门指南:模型选择、编辑器选择、项目预定全分析

开箱即用:下载安装就能用,不用配 API Key(也可以自己配)Cmd+K 快速修改:选中代码,按 Cmd+K,直接让 AI 修改Cmd+L 对话:侧边栏聊天,支持引用文件和代码@文件引用:输入 @ 就能引用项目中的文件,AI 自动读取上下文Agent 模式:告诉 AI 一个需求,它自动跨文件修改下载地址cursor.com(免费版有额度限制,足够入门)✅下载 Cursorcursor.com),安装打开✅选一个小项目(个人名片页 or Todo List)✅按照七步工作流开干。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 210

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2134

traceView的使用详解

1、DDMS与traceView的区别 DDMS是一个集调试、浏览、控制等操作为一体的工具箱,而traceView只是一个性能调优工具,可通过它查看程序中方法的执行效率等指标。 2、traceView的使用 traceView的开启有两种方式 ①最简单的方式就是直接打开DDMS,选择一个进程,然后按上面的“Start Method Profiling”按钮,等红色小点变成黑色以后就

梦在当下的博客 6951

snmp MIB详解

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

dlz0836的博客 3720

Android studio 中traceview的使用

在Android studio中打开traceView 在studio工具栏中点击tools->Android->Android Device Moniter TraceView界面 现来看一下整个界面的图,整个界面包括上下两部分,上面是你测试的进程中每个线程的执行情况,每个线程占一行;下面是每个方法执行的各个指标的值 上面一部分是你测试进程的中每个线程运行的时间线,下图中可以

LK1105010206的博客 6741

手撕数美风控三板斧:device_fingerprint/device_id/hmac生成逻辑全解析

摘要:逆向分析数美风控核心参数生成机制 本文详细记录了逆向分析数美(Shumei)风控系统中三个关键参数(device_id、device_fingerprint、hmac)的生成逻辑。通过抓包分析和动态调试(使用Frida、IDA等工具)发现:device_id由设备IMEI和Android ID经MD5哈希生成;device_fingerprint融合23项设备与环境信息,并采用SHA-256哈希和动态环境检测;hmac则是参数+指纹+动态盐值的SHA-256签名。文章揭示了数美"设备指纹+动

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1452

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

TraceView

一、TraceView的用处 TraceView用于分析计算性能,流入某个方法过于耗时导致UI卡顿,或者某个方法调用次数过多,或者某个方法虽然并不占用太多内存但是占用了大量的CPU资源等等。 二、获取TraceView文件的三种方式 1:方式一:通过代码获取 case R.id.bt_trace_view: Debug.startMethodTracing("custom"); ...

幸福的小飞猪 400

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TraceView 的使用

TraceView 的使用 TraceView 简介 TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,对java层代码以及framework层代码进行分析。(native方法无法直接分析) TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者...

kyle499899161的博客 1280

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TraceView 使用

在app的运行过程中总会出现一些卡顿现象,而且然人难以去寻找。TraceView就是一个可以让我们简单的去寻找app中具体在哪里卡顿的一个非常方便的工具。 1.具体使用 (1)在代码中使用 首先我们要选中要调试的代码片段使用Debug.startMethodTracing(“DebugName”)来开启调试参数为保存调试 文件的名字。使用Debug.stopMethodTracin

q525642022的博客 403

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TraceView介绍

Android性能调优工具TraceView介绍 本文主要介绍Android性能调优工具TraceView的使用及通过其确定性能点。   目前性能优化专题已完成以下部分: 性能优化总纲——性能问题及性能调优方式 性能优化第四篇——移动网络优化 性能优化第三篇——Java(Android)代码优化 性能优化第二篇——布局优化 性能优化第一篇——数据库性能优

u011767040的博客 358

TraceView使用

TraceView 是 Android SDK 中内置的一个工具,用于加载 trace 文件,用图形的形式展示代码的执行时间、调用次数及调用栈,便于我们分析。

且听真言 1299

Android 工具:TraceView

一、TraceView工具 TraveView采集和分析方法的执行时间和数据,用于跟踪你的代码中的性能下降问题; 二、启动TraveView Android Studio->Tools->Android->Android Device Monitor->DDMS; 三、使用TraveView 这里有两种方式,来生trace日志文件: 1. 在你的代码中使用Deb

1024工场 1199

TraceView的使用总结

一、TraceView简介       TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。       TraceView是图形化的工具,最终它会产生一个图表,用于对性能分析进行说明。       TraceView可以跟踪到具体的Method 二、TraceView的原理       TraceView通过

南魂09 1358

Android 性能优化之TraceView分析

前言:前两天接到了优化我们项目进入二级页面速度的任务,才突然发现一直忙着pm定的各种业务需求,好久没有去专门做性能方面提升的工作了。就自然的选择了用TraceView来分析卡顿的原因,在这次优化算是结束的时候我想着就当是作为对经典又好用的TraceView致敬从而写了这篇简单大众的文章。 先给需要的小白科普一下,TraceView是什么? TraceView 是 Android 平台特有的数据...

蒙的博客 752

TraceView性能分析工具详解

TraceView是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的HotSpot。TraceView本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具。

测试者家园 1163
上一篇: java里的静态成员变量是放在了堆内存还是栈内存
下一篇: 【精】android anr专题
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值