systrace html空白,Android性能优化之Systrace工具介绍(一) _ Systrace生成的trace.html打开空白或者打不开的解决办法...

1.必须用Chrome打开

2.在mac电脑上,可能Chrome打开也是空白,解决办法是:在chrome地址栏中输入”chrome:tracing”,然后点击load按钮load你的trace.html文件。

Systrace简单介绍

Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如surfaceflinger、WindowManagerService等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。

Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。在Android平台中,它主要由3部分组成:

内核部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用Systrace的话,必须开启kernel中和ftrace相关的模块。

数据采集部分:Android定义了一个Trace类。应用程序可利用该类把统计信息输出给ftrace。同时,Android还有一个atrace程序,它可以从ftrace中读取统计信息然后交给数据分析工具来处理。

数据分析工具:Android提供一个systrace.py(python脚本文件,位于Android SDK目录/tools/systrace中,其内部将调用atrace程序)用来配置数据采集的方式(如采集数据的标签、输出文件名等)和收集ftrace统计数据并生成一个结果网页文件供用户查看。 从本质上说,Systrace是对Linux Kernel中ftrace的封装。应用进程需要利用Android提供的Trace类来使用Systrace.

关于Systrace的官方介绍和使用可以看这里:Systrace

Systrace简单使用

使用Systrace前,要先了解一下Systrace在各个平台上的使用方法,鉴于大家使用Eclipse和Android Studio的居多,所以直接摘抄官网关于这个的使用方法,不过不管是什么工具,流程是一样的:

手机准备好你要进行抓取的界面

点击开始抓取(命令行的话就是开始执行命令)

手机上开始操作

设定好的时间到了之后,会将生成Trace文件,使用Chrome将这个文件打开进行分析

Using Eclipse

In Eclipse, open an Android application project.

Switch to the DDMS perspective, by selecting Window > Perspectives > DDMS.

In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.

Click the Systrace icon at the top of the Devices panel to configure tracing.

Set the tracing options and click OK to start the trace.

Using Android Studio

In Android Studio, open an Android application project.

Open the Device Monitor by selecting Tools > Android > Monitor.

In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.

Click the Systrace icon at the top of the Devices panel to configure tracing.

Set the tracing options and click OK to start the trace.

Using Device Monitor

Navigate to your SDK tools/ directory.

Run the monitor program.

In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.

Click the Systrace icon at the top of the Devices panel to configure tracing.

Set the tracing options and click OK to start the trace.

Command Line Usage

命令行形式比较灵活,速度也比较快,一次性配置好之后,以后再使用的时候就会很快就出结果(强烈推荐)

1

2

$ cd android-sdk/platform-tools/systrace

$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm

从上面的命令可以看到Systrace工具的位置,只需要在Bash中配置好对应的路径和Alias,使用起来还是很快速的。另外User版本是不可以抓Trace的,只有ENG版本或者Userdebug版本才可以。

抓取结束后,会生成对应的Trace文件,注意这个文件只能被Chrome打开。关于如何分析Trace文件,我们下面的章节会讲。不论使用那种工具,在抓取之前都会让选择参数,下面说一下这些参数的意思:

-h, –help Show the help message.(帮助)

-o Write the HTML trace report to the specified file.(即输出文件名,)

-t N, –time=N Trace activity for N seconds. The default value is 5 seconds. (Trace抓取的时间,一般是 : -t 8)

-b N, –buf-size=N Use a trace buffer size of N kilobytes. This option lets you limit the total size of the data collected during a trace.

-k

—ktrace= Trace the activity of specific kernel functions, specified in a comma-separated list.

-l, –list-categories List the available tracing category tags. The available tags are(下面的参数不用翻译了估计大家也看得懂,贴官方的解释也会比较权威,后面分析的时候我们会看到这些参数的作业的):

gfx - Graphics

input - Input

view - View

webview - WebView

wm - Window Manager

am - Activity Manager

audio - Audio

video - Video

camera - Camera

hal - Hardware Modules

res - Resource Loading

dalvik - Dalvik VM

rs - RenderScript

sched - CPU Scheduling

freq - CPU Frequency

membus - Memory Bus Utilization

idle - CPU Idle

disk - Disk input and output

load - CPU Load

sync - Synchronization Manager

workq - Kernel Workqueues Note: Some trace categories are not supported on all devices. Tip: If you want to see the names of tasks in the trace output, you must include the sched category in your command parameters.

-a

—app= Enable tracing for applications, specified as a comma-separated list of package names. The apps must contain tracing instrumentation calls from the Trace class. For more information, see Analyzing Display and Performance.

—link-assets Link to the original CSS or JavaScript resources instead of embedding them in the HTML trace report.

—from-file= Create the interactive Systrace report from a file, instead of running a live trace.

—asset-dir= Specify a directory for the trace report assets. This option is useful for maintaining a single set of assets for multiple Systrace reports.

-e

—serial= Conduct the trace on a specific connected device, identified by its device serial number.

上面的参数虽然比较多,但使用工具的时候不需考虑这么多,在对应的项目前打钩即可,命令行的时候才会去手动加参数:

我们一般会把这个命令配置成Alias,配置如下:

1

2

alias st-start='python /home/gaojianwu/Software/android-studio/sdk/platform-tools/systrace/systrace.py' alias st-start-gfx-trace = ‘st-start -t 8 gfx input view sched freq wm am hwui workq res dalvik sync disk load perf hal rs idle mmc’

这样在使用的时候,可以直接敲 st-start-gfx-mx4 即可,当然为了区分和保持各个文件,还需要加上 -o xxx.Trace .上面的命令和参数不必一次就理解,只需要记住如何简单使用即可,在分析的过程中,这些东西都会慢慢熟悉的。

转自:http://blog.csdn.net/hard_working1/article/details/50602345

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

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

相关文章

c#程序设计教程 唐大仕pdf_C# 添加PDF水印

概述一般我们在向文档添加水印时,会分为直接添加文字水印和加载图片添加图片水印两种情况。常见的,在添加文字水印时会多以声明文档版权、权威性的文字、标语或者名称等;同样的,图片水印也通常可以是某组织的LOGO、印章、或者其他…

电脑病毒竟然被程序员当宠物养!网友:这些都是我逝去的青春

全世界只有3.14 % 的人关注了数据与算法之美起电脑病毒,大家第一时间应该是想到的熊猫烧香,木马等等吧。很多电脑病毒破坏力惊人,熊猫烧香在当年也是让全国人民都陷入一种恐慌状态。但对于我们程序员来说,看过的病毒跟吃的米一样多…

安装 pptpd 服务

原文链接http://wiki.ubuntu.org.cn/index.php?titleVps&variantzh-cn#.E5.AE.89.E8.A3.85_PPTP_VPN 安装 pptpd 服务 执行如下命令安装,遇到提示输入 Y/n 时,输入 Y 回车即可: apt-get install pptpd配置 pptpd 为了避免和本地网络冲突…

.NET5 WPF进阶教程

↑↑↑ 点击左上角蓝字关注我,为您提供技术新动态。本期内容一、概要本系列将继《.net wpf快速入门教程》带领大家了解wpf,帮助各位在初级向中级过渡的中掌握基本该具备的能力。本系列视频长度大约在15分钟到30分钟左右,视频内容不仅仅会讲解…

python二维列表写入excel_用Python实现合并excel列表

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。安装xlrd模块,在安装好python的环境下,打开cmd,输入pip install xlrd 回车。安装好后,再输入pip install xlrd回车&#x…

C语言入门经典材料领走不谢!

小天从大学开始,便开启资料收集功能。近几年以大数据的飞速发展,计算机科技进入新的发展阶段,再加上日常的深入研究,小天收集整理了丰富的C语言资料,内容涵盖“入门经典”,“考试必备材料”等。截止到今天&…

vue html引入图片,vue引入图片的几种方式

情况1:图片在/public目录下把图片放到与index.html同级的目录下情况1-1.png方式1因为vue编译后会生成index.html,所以我们将图片与index.html放在同一目录下,相当于在index.html中使用引入图片情况2:图片在/src/assets目录下把图片…

html5 报表

引用:http://www.cnblogs.com/jasonxuvip/archive/2011/07/12/2104444.html 现在社会在翻天覆地的变化,生活在提高,科技在进步..大家的通讯设备也大大的高级...手机从单核---->到双核的飞跃。iPhone ,iPad. Android,Windows Phone 7等, 越来越PC机了。…

WPF 分页控件的简单实现

想做个分页控件,想了想逻辑实现太复杂了,这不,用奇怪的方式实现了它,就如这张图一样。。。看看效果:下面就直接粘代码喽:新建一个Pagination类:using System; using System.Collections.Generic…

两向量点乘坐标运算_高三数学冲刺复习之向量小题的题型总结(含好用的补充公式)...

高考中,向量小题常从以下几个方面来考查:1、平面向量的有关概念与平面向量的线性运算,主要考查向量的加法、减法运算,考查向量的数乘运算及其几何意义。2、考查平面向量的坐标:主要考查平面向量基本定理及其意义&#…

全球最厉害的14位程序员!

全世界只有3.14 % 的人关注了数据与算法之美导读:全球最厉害的14位程序员是谁?一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后)01 Jon Skeet个人名望:程序技术问答网站Stack Overflow总排名第一的大…

.net5或.net6(Preview) 之 顶级语句

创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。这是C#9带来的顶级语句的功能。System.Console.WriteLine("你好,C#");其实这…

班尼机器人维修方法_梅州市ABB机器人控制器维修中心

梅州市ABB机器人控制器维修中心库卡机器人KSP600-3X64库卡KSP控制器驱动器报警KSP600-3X64/00198268KSP600-3x20/ECMAS3D2224BE531/KSP600-3x40/ECMAS3D4444BE531/产品名称:库卡KSP600-3X64伺服包维修库卡KR控制系统伺服包型号:库卡机器人驱动模块KSP600-3x20/ECMAS3D2224BE531…

c# 获取当前活动窗口句柄,获取窗口大小及位置

2019独角兽企业重金招聘Python工程师标准>>> 需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport("user32.dll", CharSet CharSet.Auto, ExactSpelling true)] public stat…

中国科学院大学计算机考研好考吗,中国科学院大学考研难吗?一般要什么水平才可以进入?...

问:从中国科学院大学毕业的学生就业怎么样?值不值得报考?想要了解中国科学院大学毕业生就业具体情况详见>>>中国科学院大学总之,中国科学院大学就业率相对来说是比较良好的,如果大家对此学校感兴趣的话&#…

Uno 平台 一 WinUI终极跨平台方案(二)

上篇《Uno 平台 一 WinUI终极跨平台方案(一)》简单介绍了Uno平台3.6版本的更新内容,大家评论里持怀疑态度的人很多,主要还是Uno平台非微软官方发布,咱们.net技术方向的已经习惯于在微软一家技术支持下,最多…

java 方法执行结束局部变量释放_Java方法执行的内存模型

Java虚拟机栈:Java方法执行的内存模型Java虚拟机栈:Java方法执行的内存模型Java方法执行的内存模型当前线程:当前栈帧局部变量表操作数栈动态链接返回地址等信息...栈帧3栈帧2栈帧1线程3线程2线程1每个方法一被调用,就会有一个栈帧…

了解android应用开发的更多方面有更好的认识

在很多的时候我们会想为什么苹果会变的这么火热的呢?仿在Eclipse中安装ADT插件开发Android程序很方便,只需要建立Android的Project,它会自动生成android开发的目录结构,并生成一个Activity类,然后右键项目选择 "R…

程序员单身真的是有理由的吗?

全世界只有3.14 % 的人关注了数据与算法之美因为特殊职业的缘故程序员身边的女孩可谓是少之又少工作忙碌,没时间谈恋爱所有单身也就不足为奇了不过,通过我们观察,还是有不少程序员早早脱了单至于,脱单失败的各位,那真的…

瞒不住了,难怪.NET进大厂这么难!

六一儿童节,代表着金三银四铜五的跳槽季正式过去了,几家欢喜几家愁!既看到微软腾讯阿里百度的大厂offer,又不禁羡慕30k、40k、50k的高薪,当然更多的,其实还是各种面试被怼的故事。成功的经验五花八门&#…