美文网首页
Systrace使用

Systrace使用

作者: 赛非斯 | 来源:发表于2021-11-13 00:00 被阅读0次

1、安装 python 下载目录

https://www.python.org/downloads/
配置环境变量
C:\Python27\Scripts
C:\Python27

C:\Users\13941>pip install pywin32
Collecting pywin32
  Could not find a version that satisfies the requirement pywin32 (from versions: )
No matching distribution found for pywin32
You are using pip version 9.0.1, however version 21.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
改为
pip install pypiwin32
还是不行

直接去网站下载吧 
[Download Python for Windows Extensions from SourceForge.net](https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win-amd64-py2.7.exe/download)
安装后报另外一个错
ImportError: No module named six解决方法
pip install six 后再运行2 不报错了可以正常抓取了

2、python D:/SDK/platform-tools/systrace/systrace.py --time=15 -o mysystrace.html sched freq gfx input view webview wm am dalvik idle power ss disk load

最新工具:
https://blog.csdn.net/PefectWorld/article/details/119192047 在线抓
https://ui.perfetto.dev/#!/record/buffers

3、 调试:可参考文档 了解 Systrace | Android 开源项目 | Android Open Source Project (google.cn)

4、参数意义

category    解释
gfx Graphic系统的相关信息,包括SerfaceFlinger,VSYNC消息,Texture,RenderThread等;分析卡顿非常依赖这个。
input   Input
view    View绘制系统的相关信息,比如onMeasure,onLayout等。。
webview WebView
wm  Window Manager
am  ActivityManager调用的相关信息;用来分析Activity的启动过程比较有效。
sm  Sync Manager
audio   Audio
video   Video
camera  Camera
hal Hardware Modules
app Application
res Resource Loading
dalvik  虚拟机相关信息,比如GC停顿等。
rs  RenderScript
bionic  Bionic C Library
power   Power Management
sched   CPU调度的信息,非常重要;你能看到CPU在每个时间段在运行什么线程;线程调度情况,比如锁信息。
binder_driver   Binder驱动的相关信息,如果你怀疑是Binder IPC的问题,不妨打开这个。
core_services   SystemServer中系统核心Service的相关信息,分析特定问题用。
irq IRQ Events
freq    CPU Frequency
idle    CPU Idle
disk    Disk I/O
mmc eMMC commands
load    CPU Load
sync    Synchronization
workq   Kernel Workqueues
memreclaim  Kernel Memory Reclaim
regulators  Voltage and Current Regulators



| -o <FILE> | 指定trace数据文件的输出路径,如果不指定就是当前目录的trace.html |
| -t N, –time=N | 执行时间,默认5s。绝对不要把时间设的太短导致你操作没完Trace就跑完了,这样会出现Did not finish 的标签,分析数据就基本无效了 |
| -b N, –buf-size=N | buffer大小(单位kB),用于限制trace总大小,默认无上限 |
| -k <KFUNCS>,–ktrace=<KFUNCS> | 追踪kernel函数,用逗号分隔 |
| -a <APP_NAME>,–app=<APP_NAME> | 这个选项可以开启指定包名App中自定义Trace Label的Trace功能。也就是说,如果你在代码中使用了Trace.beginSection("tag"), Trace.endSection;默认情况下,你的这些代码是不会生效的,因此,这个选项一定要开启 |
| –from-file=<FROM_FILE> | 从文件中创建互动的systrace |
| -e <DEVICE_SERIAL>,–serial=<DEVICE_SERIAL> | 指定设备,在特定连接设备上进行跟踪,由[设备序列号](https://developer.android.com/studio/command-line/adb.html#devicestatus)标识 。 |
| -l, –list-categories | 这个用来列出你分析的那个手机系统支持的Trace模块,一般来说,高版本的支持的模块更多 |

5、打开trace
在chrome地址栏中输入”chrome:tracing”

6、看看一些展示的信息


20211112235144.png 30211112235444.png 40211112235802.png

相关文章

网友评论

      本文标题:Systrace使用

      本文链接:https://www.haomeiwen.com/subject/glqazltx.html