adb查看、设置cpu相关信息

复制代码
查内存
adb shell dumpsys meminfo


查CPU
top -m 10

打开 system_monitor
adb shell am start -n eu.chainfire.perfmon/.LaunchActivity


设置CPU的核心数
在/sys/devices/system/cpu目录下可以看到你的CPU有几个核心,如果是双核,就是cpu0和cpu1,如果是四核,还会加上cpu2和cpu3。
随便进一个文件夹,比如cpu1,里面有个online文件。我们可以用cat命令查看该文件的内容:
cat /sys/devices/system/cpu/cpu1/online
这个文件只有一个数字,0或1。0表示该核心是offline状态的,1表示该核心是online状态的。所以,如果你想关闭这个核心,
就把online文件的内容改为“0”;如果想打开该核心,就把文件内容改为“1”。
echo "0" > /sys/devices/system/cpu/cpu0/online # 关闭该CPU核心
echo "1" > /sys/devices/system/cpu/cpu0/online # 打开该CPU核心


设置CPU的模式
首先我们要修改governor的模式,但在修改前需要查下CPU支持哪些governor的模式
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
我用的是Nexus 4手机,所以有以下5个选择,其他的手机型号可能略有不同
conservative ondemand userspace powersave interactive performance
关于这些模式,具体解释如下:
ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核,还有CM7的默认的方式都是ondemand。流畅度: 一般,流畅
interactive:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。 流畅度: 最高,极流畅 Interactive 是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX 是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般
performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量.......流畅度:还需要说么?还有比这种模式更流畅的吗?
conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。 流畅度: 高,流畅
smartass:聪明模式,是I和C模式的升级,该模式在比i模式不差的响应的前提下会做到了更加省电流畅度: 最高,流畅
powersave 省电模式,通常以最低频率运行,打不死我也不用。流畅度: 极低
userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置流畅度:根据设置而定
Hotplug:类似于ondemand, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。流畅度:一般,流畅
在这里,我们将模式调整为performance。
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
MTK8163:
ondemand userspace powersave interactive performance


设置CPU的频率
CPU的频率不是可以任意设置的,需要查看scaling_available_frequencies文件,看CPU支持哪些频率。
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1300000 1216000 1133000 1050000 871000 741000 624000 600000

这里的频率是以KHz为单位的,我准备将cpu0设置为1.416GHz,那就将1416000写入scaling_setspeed即可。

echo 1300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
echo 1216000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed
echo 1216000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_setspeed
echo 1216000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_setspeed

设置好后,我们可以通过scaling_cur_freq文件查看当前这个核心的频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq


最后我们也可以设置下CPU的最大和最小频率,只需要将需要设置的频率值写入scaling_max_freq和scaling_min_freq即可

echo 1300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq # 设置最大频率
echo 1133000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq # 设置最小频率
这里要注意的是最大值需要大于等于最小值。


adb shell "echo 0 > /proc/hps/enabled"
adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
adb shell "echo 1 > /sys/devices/system/cpu/cpu0/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu1/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu2/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu3/online"
相关推荐
····懂···8 分钟前
开源数据库PostgreSQL专家技术
数据库·postgresql·开源
Asu520217 分钟前
思途SQL学习 0729
数据库·sql·学习
gb421528725 分钟前
负载均衡算法中的加权随机算法
windows·算法·负载均衡
未出道的小弟30 分钟前
图形界面应用程序技术栈大全
windows
北亚数据恢复35 分钟前
服务器数据恢复—RAID上层部署的oracle数据库数据恢复案例
数据库·oracle·服务器数据恢复·北亚数据恢复
不辉放弃1 小时前
kafka的消息存储机制和查询机制
数据库·kafka·pyspark·大数据开发
ZZH1120KQ3 小时前
ORACLE的用户维护与权限操作
数据库·oracle
妮妮喔妮3 小时前
图片上传 el+node后端+数据库
javascript·数据库·vue.js
仰望星空的凡人8 小时前
【JS逆向基础】数据库之MongoDB
javascript·数据库·python·mongodb
duration~10 小时前
PostgreSQL并发控制
数据库·postgresql