os-android:性能分析工具(systrace,starce,top,iotop)

2023-11-23 11:08

本文主要是介绍os-android:性能分析工具(systrace,starce,top,iotop),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

os-android:性能分析工具(systrace,starce,atrace)

1 超级神器 systrace

Systrace 允许你在系统级别收集和检查设备上运行的所有进程的计时信息。Systrace采集内核、Android系统和应用层的信息,然后生成HTML图像化报告。如果想分析Android系统或者app的问题,首先我们需要抓取Systrace文件分析并找出引起系统卡顿,瞬间就可定位出卡顿的原因。调试Native层的卡顿问题,定制化加些ATRACE标记,找出卡顿原因也轻松。

工具位置:${Android-SDK}\platform-tools\systrace 文档:https://source.android.com/devices/tech/debug/systrace。

systrace集成在Android Device Monitor中,工具位置: Android-SDK\tools\monitor.bat。Android Device Monitor可以进行屏幕截图、dump视图结构和抓取systrace。除了通过Android Device Monitor使用systrace, 也可以直接调用Android-SDK\platform-tools\systrace\systrace.py

1.1 查看支持哪些trace类型

rk3328_box:/ # python systrace.py --list-categories
rk3328_box:/ # py -2 systrace.py --list-categories

1.2 抓trace并输出

rk3328_box:/ # #包含问题现象的,才有分析价值
rk3328_box:/ # py -2 systrace.py -o mynewtrace.html -t 10 audio video network mmc sync sched freq idle am wm gfx view hal

1.3 使用Android-Studio的systrace

Android Studio 3.1以后,DDMS 和 Systrace、Hierarchy Viewer都不用了。
使用Android Profiler替代DDMS 和 Systrace,Layout Inspector 替代Hierarchy Viewer。

1.4 目标板上使用atrace

rk3328_box:/ # atrace -o /data/new_trace.html -t 15 -b 4096 audio video network mmc sync sched
rk3328_box:/ # atrace -t 10 -b 4096 audio video network mmc sync sched

1.5 chrome查看trace

在chrome的地址栏中敲入chrome://tracing/ 然后通过load按钮加载你的trace文件

1.6 代码中添加Trace

#define ATRACE_TAG ATRACE_TAG_GRAPHICS
#include "utils/Trace.h"
ATRACE_CALL();
ATRACE_BEGIN(name);
ATRACE_END();
ATRACE_NAME(name);

2 strace 查看系统调用

strace 是Linux下的调试利器,可以跟踪所有的系统调用,打印系统调用的参数和返回值; strace还可以指定跟踪子线程/子进程,支持多线程程序的调试。Android的底层是Linux操作系统, strace一般固件默认支持。strace本身不依赖于系统,从一个机器拷贝到另一个机器直接能用。strace 依赖三个最基本的库:libc.so, libstdc++.so 和 libm.so。放心使用就是了。

rk3328_box:/ # strace  -h
Filtering:-e expr        a qualifying expression: option=[!]all or option=[!]val1[,val2]...options:    trace, abbrev, verbose, raw, signal, read, write, fault-P path        trace accesses to pathTracing:-b execve      detach on execve syscall-D             run tracer process as a detached grandchild, not as parent-f             follow forksrk3328_box:/ # ps -A | grep mediaserver
rk3328_box:/ # strace -f -p 6605
rk3328_box:/ # strace -f -p `ps -A | grep mediaserver | awk '{print $2}'`rk3328_box:/ # ps -A | grep surface | awk '{print $2}'
rk3328_box:/ # strace -f -p 21962
rk3328_box:/ # strace -f -tt -T -p <pid>
rk3328_box:/ # strace -p <pid> -c

3 top 和 iotop 分析程序性能

rk3328_box:/ # top -m 10
rk3328_box:/ # iotop -m 10

这篇关于os-android:性能分析工具(systrace,starce,top,iotop)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417488

相关文章

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.