Android:高通平台性能调试
1.GPU / CPU 信息打印脚本
gpu_cpu_info.bat
@echo off
echo "==================GPU======================"
echo Used / Total:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy
echo Utilization rate:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage
echo Max frequencies:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
echo Min frequencies:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
echo Available frequencies:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies
echo Current frequencies:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/cur_freq
echo Available governors:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/available_governors
echo Governors:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/governor echo "==================CPU======================"
echo Available frequencies:
adb shell cat
echo Max frequencies:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo Min frequencies:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo Current frequencies:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
echo "===========================================" ping 127.0.0.1 -n > nul % @循环执行脚本 pause
2.进程/线程 性能信息:
.打印进程的堆栈信息。从堆栈信息里可以通过.so辨别哪个线程是干什么的,从而在 top -t 的结果里去查找你想要的那个线程的 CPU 使用情况。
# debuggerd -b <pid>
.查看某个进程里所有线程
# ps -A | grep camera
cameraserver binder_ioctl_write_read S android.hardware.camera.provider@2.4-service_64
cameraserver binder_ioctl_write_read S cameraserver
# ps -T 642
USER PID TID PPID VSZ RSS WCHAN ADDR S CMD
cameraserver binder_io+ S provider@2.4-se
cameraserver poll_sche+ S provider@2.4-se
cameraserver futex_wai+ S SyncManager_0
cameraserver poll_sche+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver futex_wai+ S provider@2.4-se
cameraserver poll_sche+ S provider@2.4-se
cameraserver poll_sche+ S provider@2.4-se
cameraserver binder_io+ S HwBinder:642_1
cameraserver binder_io+ S HwBinder:642_2
cameraserver binder_io+ S HwBinder:642_3
cameraserver binder_io+ S HwBinder:642_4
cameraserver poll_sche+ S HwBinder:642_1
查看该进程ION Buffer情况:
# cat /sys/kernel/debug/dma_buf/dmaprocs | grep 642
provider@2.4-se (PID ) size:
dmabuf642
.查看线程内存占用和CPU使用率
# top 参数含义:
PID 进程号
USER 用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级m
RES 进程使用的、未被换出的物理内存大小,单位kb
SHR 共享内存大小,单位kb
S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
%CPU CPU使用率
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
.查看指定程序(mediaserver)内存使用情况
# dumpsys meminfo mediaserver
dumpsys [options]
meminfo 显示内存信息
cpuinfo 显示CPU信息
account 显示accounts信息
activity 显示所有的activities的信息
window 显示键盘,窗口和它们的关系
wifi 显示wifi信息
Android:高通平台性能调试的更多相关文章
- Android高通平台调试Camera驱动全纪录
项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...
- 高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】
本文转自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PB ...
- 高通平台点亮LCD个人总结
点击打开链接 高通平台LCD模块大致分为两部分:KERNEL和LK.在进行点屏之前,应该认真查看LCD原理图,弄清楚LCD亮屏需要满足的条件和上电时序,同时可以跟LCD IC原厂拿到初始化代码. 首先 ...
- 高通平台手机开发之LCD
4.1. LCD 参考文档: 1) 80-NA157-174_E_DSI_Programing_Guide_B-Family_Android_Devices.pdf 2) 80-NN766-1_A_L ...
- 高通平台如何避免误入FFBM模式
前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法.虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会严重影响用户体验.这 ...
- Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...
- 高通平台读写nv总结
一,引言 1. 什么是NV 高通平台的NV,保存了系统运行过程中各个模块可能用到的一些参数值,它是以单个文件的形式保存在EFS中,但用户是不能随意访问的,只能通过QXDM来进行读 ...
- 高通平台读写nv总结【转】
本文转载自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言 1. 什么是NV 高通平台的NV,保 ...
- 高通平台打开 dynamic debug方法【学习笔记】
一.首先在内核的配置文件添加如下的配置: CONFIG_DEBUG_FS=y CONFIG_DYNAMIC_DEBUG=y 二.找到自己平台对应的 device/qcom/xxxx/init.targ ...
随机推荐
- http通讯过程
- 【转】DELPHI开始支持LINUX DOCKER
这是咏南翻译Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级DOCKER而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在 ...
- 二零一八阿里p7笔试116题
1. junit用法,before,beforeClass,after, afterClass的执行顺序 2. 分布式锁 3. nginx的请求转发算法,如何配置根据权重转发 4. 用hashmap实 ...
- 【2017-07-03】CSS实现父级div透明,子集不透明。
父级背景色 background: rgba(0, 0, 0, 0.5);
- 5.Hbase API 操作开发
Hbase API 操作开发需要连接Zookeeper进行节点的管理控制 1.配置 HBaseConfiguration: 包:org.apache.hadoop.hbase.HBaseConfigu ...
- IntelliJ IDEA常用快捷键整合
一.视图查看 Ctrl+F12 查看file,method结构图.类继承机构图 (不知道方法结构,Ctrl+F12一下,方法,参数,返回值,一清二楚的展现出来) Ctrl+shift+Alt+U ...
- 通过字节码分析Java方法的静态分派与动态分派机制
在上一次[https://www.cnblogs.com/webor2006/p/9723289.html]中已经对Java方法的静态分派在字节码中的表现了,也就是方法重载其实是一种静态分派的体现,这 ...
- MongoDB C#samus驱动
MongoDB的c#驱动有两种,官方驱动和samus驱动,不过我更喜欢samus驱动,因为samus驱动提供了丰富的linq操作. 官方驱动:https://github.com/mongodb/mo ...
- Golang 本身是用什么语言写的?
原文:https://www.zhihu.com/question/66944175 ------------------------------- 首先,问题的说法是有问题的. golang本身是用 ...
- django-rest-framework --- 基础简介
目录 drf知识点 --- 后台 django restframework介绍 drf框架安装 接口 接口组成 如何写接口 接口组成的两大部分 接口文档 Postman接口工具使用 基于resrful ...