Android 读取CPU/GPU运行参数(MTK平台)
一、使用场景
Android运行一段世时间后,系统出现卡顿
二、分析&定位问题
系统卡顿,同时又发现芯片温度很高,怀疑是温度过高导致CPU降频,因此我们要将一段时间内CPU的运行信息打印出来。这里我们想知道CPU温度与运行频率之间的关系,所以需要输出CPU的温度和频率参数,其次还一些辅助信息,例如时间和GPU的占用率。所以需要的数据项包括:时间、CPU温度、CPU频率、GPU占用率。为了获取一段时间内的数据,我们需要编写脚本间隔1s输出一组数据,建议观察5min左右。
1.编写shell脚本,新建文件cpu_util.sh,拷贝下面的文本保存到文件中
# Des : 间隔1s输出CPU/GPU运行信息
# Ver : V1.0
# usage:
# adb root
# adb remount
# adb push cpu_util.sh /system/bin/
# adb shell
# ./system/bin/cpu_util.shprintf " time cpu_temp cpu0~3[max-min]<cur_HZ> cpu4~7[max-min]<cur_HZ> gpu_rate \n"
while true
do
#temp of CPU
cpu_temp_t=$(cat /sys/class/thermal/thermal_zone1/temp)
cpu_temp=$(awk 'BEGIN{printf "%.1f\n",('$cpu_temp_t'/'1000')}')#rate of GPU
gpu_idle=$(cat /sys/module/ged/parameters/gpu_idle)
gpu_rate=$((100-${gpu_idle}))printf "%s %0.1f [%7d-%7d]<%7d> [%7d-%7d]<%7d> %3s %3s \n" \
$(date "+%Y-%m-%d-%H:%M:%S") \
${cpu_temp} \
$(cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq) \
$(cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq) \
$(cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq) \
$(cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_max_freq) \
$(cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_min_freq) \
$(cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freq) \
${gpu_rate} \sleep 1
done
2.脚本中节点说明
/sys/class/thermal/thermal_zone1/temp #CPU温度
/sys/module/ged/parameters/gpu_idle #GPU空闲率
/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq #cpu0~3核最大频率
/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq #cpu0~3核最小频率
/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq #cpu0~3核当前频率
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_max_freq #cpu4~7核最大频率
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_min_freq #cpu4~7核最小频率
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freq #cpu4~7核当前频率
* 基于Android9.0平台,其他平台的路径可能有些许差异
* 芯片总共8核,0~3核的策率为policy0,4~7核的策率为policy4
3.脚本用法说明,依次运行如下命令
# adb root
# adb remount
# adb push cpu_util.sh /system/bin/
# adb shell
# ./system/bin/cpu_util.sh
三、分析数据
1.部分数据如下
2.读取3min左右的数据绘制成图表如下
从上图可以看出3min内CPU频率随着温度变化的关系,大概是温度达到75度左右开始,cpu0~3核频率开始急剧下降,最后降到最低的793000HZ,保持一段时间,当CPU温度低于75度左右开始频率变高。
测试发现系统卡顿时也是这段时间,所以得出结论,CPU温度升高导致降频率,进而导致系统运行卡顿。
定位到系统卡顿是因为CPU温度升高导致,后续可以从两方面进行优化:
1)分析哪些应用占用CPU特别高,优化对应应用CPU占用率
2)从硬件结构分析,提高CPU的散热效率
这次对系统卡顿问题的分析就到这里,分析步骤写的比较简单,如果哪些地方写的不对或者有哪些地方不懂的可以给我留言,谢谢!
Android 读取CPU/GPU运行参数(MTK平台)相关推荐
- Android系统定制源码修改 - MTK平台
Android系统定制源码修改 - MTK平台 1.修改开机弹出欢迎使用SIM MTK工程/mediatek/packag ...
- Android 系统性能优化(57)---MTK 平台开关机、重启时间优化
MTK 平台开关机.重启时间优化 开关机.重启时间优化 开机性能优化:是用功能和其它因素多方面平衡的结果,片面追求单方面的性能没有太大意义: 有些产品设计开机动画非常酷炫,动画图片过多.高帧率 ...
- android 性能优化---(2) MTK 平台开机时间优化
一.在工程模式开启MTKLogger, 开机后取日志bootprof adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_10 ...
- mtk android 笔记,Android驱动笔记(9)——MTK平台Sensor Bring Up
sensor的img位于scp.img 9.1.在成熟的平台Bring Up 在已知的平台上驱动并验证一个器件是很常见的工作.因为管脚等基本不需要重新配置.所以只需要按照一般步骤驱动即可.驱动代码位置 ...
- Android 系统性能优化(12)---MTK 平台UX性能分析方法
1.Android UX 性能分析 UX 性能 KPI - App Launch.FPS.Game.Benchmark • 建议所有机型都做UX 测试,建立各厂家机型性能内部数据库 • 测试指标的选取 ...
- android 改变来电号码,Android8.1 MTK平台 Dialer修改(来电全屏、归属地显示)
来电默认全屏 默认情况下,来电android是以通知窗口的形式显示,只在屏幕的顶部显示,现在改为全屏显示 修改位置 alps\vendor\mediatek\proprietary\packages\ ...
- Android 系统性能优化(75)---MTK 平台perfomance问题的基本信息确认
perfomance问题的基本信息确认 在debug performance问题时候,常常遇到由于debug功能导致的performance问题. 1:确认是否为eng版本? adb shell ...
- Android Q MTK平台开关机铃声
google 默认开机动画代码在framework/base/cmds/bootanimation MTK 开机动画代码在vendor/mediatek/proprietary/operator/fr ...
- GPS之MTK平台代码小结以及gps协议注释
分类: 通信硬件与通讯协议 2014-10-20 09:55 337人阅读 评论(0) 收藏 举报 ...
最新文章
- HDU 2066 一个人的旅行
- 武汉大学计算机学院学生寝,多彩青春一路同行——记武大计算机学院计科2班...
- net use命令详解
- 某公司有一台打印、复印一体机,需要将购买成本分年均摊到隔年的费用中。请编写一个程序,根据用户输入的购买金额和预计使用年限计算每年的分摊费用。要求对输入异常进行适当的处理。
- oracle 删除系统用户,Oracle数据库如何创建和删除用户
- 不借助任何变量进行变量交换
- Docker系列五~docker安装php-fpm
- matlab 异步程序代码,正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序...
- 风险预测模型_【期刊导读】长期NA治疗的慢乙肝患者也有专属肝癌风险预测模型...
- HDU2020 绝对值排序【入门】
- Python + Graphviz 绘制神经网络结构图
- 康托尔连续统假设(CH)不成立
- ES6 对象数组查找某一个对象
- python全栈开发中级班全程笔记(第三模块、第一章(多态、封装、反射、内置方法、元类、作业))...
- 学历证书查询唯一网站
- 推荐搜索的冷启动问题
- SQL SERVER 为现有表中增加列
- 2020年白领年终奖报告来了,平均值为7826元
- 2016年8月27日 星期六 --出埃及记 Exodus 16:28
- ytu1904——寄居蟹与海葵
热门文章
- 怎么做表情包微信gif?好用的制作方法介绍
- mysql insert 返回值是什么_各种SQL Insert 返回值
- python的xlrd读取Excel数据失败: raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘) ...
- 评估酒店营销效果的12个重要KPI指标
- 数据库组成和存储引擎
- 《C++面向对象程序设计》董正言、张聪版内容概括
- 面试必问题之Docker分布式搭建
- 树莓派4B使用MJPG-Streamer
- Python文本分析(NLTK,jieba,snownlp)
- Ubuntu 18.04 安装搜狗输入法