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:高通平台性能调试的更多相关文章

  1. Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  2. 高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】

    本文转自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PB ...

  3. 高通平台点亮LCD个人总结

    点击打开链接 高通平台LCD模块大致分为两部分:KERNEL和LK.在进行点屏之前,应该认真查看LCD原理图,弄清楚LCD亮屏需要满足的条件和上电时序,同时可以跟LCD IC原厂拿到初始化代码. 首先 ...

  4. 高通平台手机开发之LCD

    4.1. LCD 参考文档: 1) 80-NA157-174_E_DSI_Programing_Guide_B-Family_Android_Devices.pdf 2) 80-NN766-1_A_L ...

  5. 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法.虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会严重影响用户体验.这 ...

  6. Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt

    高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...

  7. 高通平台读写nv总结

    一,引言      1. 什么是NV       高通平台的NV,保存了系统运行过程中各个模块可能用到的一些参数值,它是以单个文件的形式保存在EFS中,但用户是不能随意访问的,只能通过QXDM来进行读 ...

  8. 高通平台读写nv总结【转】

    本文转载自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言      1. 什么是NV       高通平台的NV,保 ...

  9. 高通平台打开 dynamic debug方法【学习笔记】

    一.首先在内核的配置文件添加如下的配置: CONFIG_DEBUG_FS=y CONFIG_DYNAMIC_DEBUG=y 二.找到自己平台对应的 device/qcom/xxxx/init.targ ...

随机推荐

  1. 【Distributed】分布式配置中心

    一.概述 1.1 什么是分布式配置中心 常用分布式配置中心框架 二.Apollo阿波罗 2.1 Apollo特点 2.2 Apollo整体架构原理 2.3 Apollo Portol 环境搭建 Lin ...

  2. 《浏览器工作原理与实践》<11>this:从JavaScript执行上下文的视角讲清楚this

    在上篇文章中,我们讲了词法作用域.作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName ...

  3. I2C总线、设备、驱动

    I2C总线.设备.驱动 框架 I2C驱动框架可分为3个部分,分别是:I2C核心层.I2C总线驱动层(适配器层)以及I2C设备驱动层: I2C核心层 提供了统一的I2C操作函数,主要有两套函数smbus ...

  4. Vue 一些用法

    v-model : 数据绑定(多数用于表单元素) ps:同时v-model支持双向数据绑定v-for : 用于元素遍历v-on:事件名称=“方法名” (事件绑定)ps: methods:用于绑定 v- ...

  5. Python基础之类

    一.摘要 面向对象编程 是最有效的软件编写方法之一.在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象.编写类时,你定义一大类对象都有的通用行为.基于类创建对象 时,每个对 ...

  6. Java 基础 - Collection集合通用方法及操作/ArrayList和LinkedList的差别优势 /弃用的Vector

    Collection的笔记: /**存储对象考虑使用: * 1.数组, ①一旦创建,其长度不可变!② 长度难于应对实际情况 * 2.Java集合, ①Collection集合: 1.set: 元素无序 ...

  7. Oracle 多表联合删除?--转

    oracle和mysql多表删除数据的方法一大把,好多都是没经过证实的,你很可能已经被错误信息误导了,下面我以mysql两张表删除数据为例,来让给为注意到这一点,我在mysql中新建了两张表,分别是用 ...

  8. 7月新的开始 - Axure学习02 - 页面属性、钢笔工具

    页面属性 页面属性可以修改整个页面的效果 包含: 属性.对交互用力和事件的编辑 样式.对页面的样式操作 说明.可以对整个页面进行说明.以及样式的说明 钢笔工具:锚点.路径 锚点:钢笔点击之后的点就是锚 ...

  9. Ubuntu安装依赖文件

    我们在安装软件的时候,有时会出现由于依赖的软件没有被安装,会导致软件安装的失败,其实我们可以用命令来安装依赖的软件,这里以Ubuntu为例进行说明. 我在安装wps-office的时候,显示安装成功了 ...

  10. 2019牛客多校第五场 generator 1——广义斐波那契循环节&&矩阵快速幂

    理论部分 二次剩余 在数论中,整数 $X$ 对整数 $p$ 的二次剩余是指 $X^2$ 除以 $p$ 的余数. 当存在某个 $X$,使得式子 $X^2 \equiv d(mod \ p)$ 成立时,称 ...