TraceView使用

news2025/2/4 6:57:31

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函数里,调用别的函数所执行的时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新零售时代下,物流行业迎来新机遇

电商,一个异军突起的新行业,将改变传统商业旧模式。根据相关数据显示,2010-2019年,我国电商交易规模从4.5万亿元增长到34.8万亿元,年均复合增速达25%。在电商飞速发展的态势下,物流行业也迎来了蓬勃发展。 …

【华为OD机试真题2023 JAVA】去除多余空格

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 去除多余空格 知识点字符串数组队列 时间限制:2s 空间限制:256MB 限定语言:不限 题目描述: 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和…

Python3和Django的单元测试示例

1. unittest unittest是python自带的单元测试框架,unittest框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框…

性能测试(二)—— JMeter元件作用域和执行顺序、JMeter示例、JMeter参数化

目录 一、JMeter元件作用域和执行顺序 1. 元件的基本介绍 2. 元件作用域 3. 元件执行顺序 二、JMeter使用示例 1. JMeter第一个案例 2. 重点组件 2.1 线程组 2.2 HTTP请求 2.3 查看结果树 三、JMeter参数化 1. JMeter参数化常用方式 2. 用户定义的变量 2.1 场景 …

详解OpenCV的线段绘制函数line()

函数line()用于在图像上绘制圆形。 函数line()利用两点确定一条直线的原理在图像中绘制出一条线段。 C原型如下: void cv::line(InputOutputArray img,Point pt1,Point pt2,const Scalar & color,int thickness 1,int lineType LINE_8,int shift 0)Python原…

智能优化算法:人工蜂鸟算法 - 附代码

智能优化算法:人工蜂鸟算法 摘要:人工蜂鸟算法( AHA )是 ZHAO 等 于 2021 年提出的一种新型元启发式优化算法 . 该算法模拟了自然界中蜂鸟轴向飞行、对角飞行、全方位飞行 3 种特殊飞行技能和引导觅食、区域觅食、迁移觅食 3 种智能觅食策略,并通过引入…

【大数据入门核心技术-Spark】(三)Spark 本地模式安装

目录 一、Spark集群三种部署模式 1、 Local模式 2、Spark Standalone模式 3、Spark on YARN模式 二、准备工作 1、Hadoop环境安装 2、下载spark 三、安装spark 1、解压 2、配置环境变量 3、修改配置文件 4、测试安装是否成功 四、运行测试spark 1、读取本地文件 …

【Java|golang】1760. 袋子里最少数目的球---逆向二分法

给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有 正整数…

buildroot 升级软件包

因为软件漏洞问题,需要升级软件包,如 ncurses、libpwquality 等; 我目前采用的方法如下: 环境: 下载一个 buildroot 的最新版本: git clone git://git.buildroot.net/buildroot.git 我使用的 linux 环…

深入底层,spring mvc父子容器初始化过程解析

spring mvc父子容器初始化过程解析1、为什么要学习spring mvc底层?2、Java Web应该学什么?1、Tomcat2、servlet3、filter4、listener3、spring mvc容器初始化过程1、以WebApplicationInitializer.onStartup()方法作为入口2、registerDispatcherServlet()…

Java真的不难(五十二)Stream流的深入理解与流式编程

Stream流的深入理解与流式编程: 在今年年初小应学长也写过Stream与Lambda的两篇文章,今天先将两者结合起来进行流式编程 一、关于这两者 Stream与Lambda都是Java8引入的新概念,lambda在Java编程中对于函数式编程的支持,有助于代…

H5 WebSQL每日成语

有一天看到同事发的类似 这种成语填空一样的内容。 惟利( )视 为德( )终 质非文( ) ( )追耗子 烂漫天( ) ( )则改之,无则嘉勉 得( )之作 哀( )如潮 于是就去网上找成语数据库表的 SQL… 哈哈哈 很容易就找到了. 本来打算写个前后端,想了想可以但没…

Codeforces Round #840 (Div. 2) and Enigma 2022 - Cybros LNMIIT题解

这场好难我是废物&#xff0c;掉大分了 A. Absolute Maximization 利用|找最大值和&找最小值即可 #include <bits/stdc.h> using namespace std; // #define int long long #define endl \nvoid solve() {int n;cin >> n;int maxn 0,minn 1023;for(int i …

TCP报文结构、确认应答机制、超时重传机制、连接管理机制

TCP报文结构、确认应答机制、超时重传机制、连接管理机制一、TCP报文结构二、确认应答机制三、超时重传机制四、连接管理机制4.1 三次握手建立连接4.2 四次挥手断开连接一、TCP报文结构 可靠传输是TCP中最最核心的特性&#xff01;&#xff01;&#xff01; 上篇博客我们已经介…

企事业单位如何做好服务器数据防泄露,防病毒工作

目前现状 无论是中小企业还是大型企事业单位&#xff0c;均有属于自己的内网或公有云服务器。这些服务器有的是专门的SVN、GIT代码服务器&#xff0c;有的是文档存储服务器&#xff0c;有的是应用服务器。服务器是企业的核心命脉&#xff0c;所有知识产权及多年心血都集中汇总…

【学习笔记】JDK源码学习之HashMap(附带面试题)

最近发布 AND 其他好文 &#xff1a;地址 什么是 HashMap &#xff1f;它和 Map 之间又有什么样的关系呢&#xff1f;我们是否能拿它在并发中使用呢&#xff1f; 带着以上问题&#xff0c;让我们一同走入这让人着迷的 HashMap 。 1、什么是HashMap&#xff1f; HashMap 基于…

DOM算法系列005-获取给定节点所属的window对象

UID: 20221220091217 aliases: tags: source: cssclass: created: 2022-12-20 我们知道&#xff0c;在一个HTML页面中&#xff0c;可以包含很多个框架或框架集&#xff0c;那么&#xff0c;当给定一个节点&#xff0c;我们如何获取这个节点所属的window对象呢&#xff1f; 首先…

【填坑向】Linux获取Java程序resource下的文件路径(这次的坑好像没填住……

​╮(&#xffe3;▽&#xffe3;"")╭没错&#xff0c;就是那个传说中的FileNotFoundException&#xff0c;文件找不到了 一开始&#xff0c;特别单纯的俺是把文件直接放在项目根目录的&#xff0c;获取文件地址的位置就只写了一个文件名&#xff08;相对路径&…

Nature子刊:生命的最初几个小时内可快速学习音位辨别—基于fNIRS研究

摘要 人类新生儿可以区分音素&#xff0c;但这种能力背后的神经机制尚不清楚。新生儿的大脑可以学会区分自然&#xff08;前&#xff09;元音和逆向&#xff08;后&#xff09;元音&#xff08;在子宫中学习不到的&#xff09;。利用功能近红外光谱&#xff0c;我们检测了出生…

工控CTF之协议分析2——MMS

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、MQTT、CoA…