cpucpuz怎么看内存频率固定在特定频率上

后使用快捷导航没有帐号?
其他登录方式
—— 新手入门 ——
—— 智友精华 ——
查看: 4706|回复: 16
在线时间54 小时最后登录阅读权限15UID111190注册时间积分84精华0
, 积分 84, 距离下一级还需 16 积分
主题帖子 金币137 元 智豆0 点
本帖最后由 yujie790710 于
16:52 编辑
大家好z5s大牛,有没有什么方法能锁住cpu和gpu的频率,现在用了很多软件和网上的很多方法都不能锁cpu和gpu频率,有没有朋友有方法的分享一下吧。
在线时间9882 小时最后登录阅读权限60UID4242454注册时间积分16605精华0
, 积分 16605, 距离下一级还需 1395 积分
主题帖子 金币37 元 智豆4 点
智友移动版
setcpu可以锁定CPU& &,前提是root。&&GPU还不知道
在线时间54 小时最后登录阅读权限15UID111190注册时间积分84精华0
, 积分 84, 距离下一级还需 16 积分
主题帖子 金币137 元 智豆0 点
AG魑魅 发表于
setcpu可以锁定CPU& &,前提是root。&&GPU还不知道
早试了锁不了
在线时间54 小时最后登录阅读权限15UID111190注册时间积分84精华0
, 积分 84, 距离下一级还需 16 积分
主题帖子 金币137 元 智豆0 点
AG魑魅 发表于
setcpu可以锁定CPU& &,前提是root。&&GPU还不知道
早试了锁不了,锁不住。
在线时间9882 小时最后登录阅读权限60UID4242454注册时间积分16605精华0
, 积分 16605, 距离下一级还需 1395 积分
主题帖子 金币37 元 智豆4 点
智友移动版
yujie790710 发表于
早试了锁不了,锁不住。
应该有用的。&&
在线时间54 小时最后登录阅读权限15UID111190注册时间积分84精华0
, 积分 84, 距离下一级还需 16 积分
主题帖子 金币137 元 智豆0 点
AG魑魅 发表于
setcpu可以锁定CPU& &,前提是root。&&GPU还不知道
锁不了,玩一会一发热还是要强行降频率,试了很多软件都一样。
在线时间9882 小时最后登录阅读权限60UID4242454注册时间积分16605精华0
, 积分 16605, 距离下一级还需 1395 积分
主题帖子 金币37 元 智豆4 点
智友移动版
yujie790710 发表于
锁不了,玩一会一发热还是要强行降频率,试了很多软件都一样。
好吧。&&手上没Z5S测试。
在线时间1708 小时最后登录阅读权限50UID4816308注册时间积分6302精华0
, 积分 6302, 距离下一级还需 1698 积分
主题帖子 金币3522 元 智豆234 点
yujie790710 发表于
早试了锁不了,锁不住。
不知牛仔电工是否可行???
在线时间1019 小时最后登录阅读权限45UID7309213注册时间积分4152精华0
, 积分 4152, 距离下一级还需 848 积分
主题帖子 金币1774 元 智豆1607 点
手机自带的牛仔电工不是再带锁频么 cpu gpu都能锁 干嘛还弄这么麻烦
在线时间3733 小时最后登录阅读权限90UID6539508注册时间积分15061精华0
有什么事情请pM我。谢谢
主题帖子 金币1098 元 智豆20 点
智友移动版
何必要锁定呢?频率根据系统的变化而变化,节能啊。在MTK芯片上如何控制CPU的核数和频率-MTK PerfService
MTK提供了一个PerfService来实现调整CPU/GPU资源的服务。对于老的API,可以更简单地讲就是调CPU核数和CPU频率的。
在MTK芯片上如何控制CPU的核数和频率-MTK PerfService
一句话:PerfService就是用来调整CPU/GPU资源的。对于老的API,可以更简单地讲就是调CPU核数和CPU频率的。
PerfService简介
kernel中实现了两个driver,一个负责控制开关CPU的核数,叫做hot-plug驱动,另一个负责调整CPU的频率,叫做DVFS驱动。
kernel中的driver会根据系统的负载情况下,自动调整使用几个CPU和调整CPU频率。如果负载高了,提高频率,或者多开几个核,或者开大核。如果负载降下去了,就可以关大核,关核,降频。
虽然现在的自动调频和调核的策略已经定义了很多,也在不断地完善,但是有两个问题:一是总有覆盖不到的情况,或者干脆就是互相矛盾的需求导致策略冲突。二是自动调度都是后知后觉的,只有发现负载上来了或者降下去了,才来做负载调节,需要一定的时间。这样,要么是效率不够,要么是功耗无谓地消耗掉。
PerfService就是一个在用户空间来主动调节系统能力的服务。
C/C++调用PerfService
动态加载libperfservicenative.so
注册用户场景PerfServiceNative_userReg/PerfServiceNative_userRegBigLittle/PerfServiceNative_userRegScn
激活用户场景PerfServiceNative_userEnable
执行用户场景
反激活用户场景PerfServiceNative_userDisable
退出进程之前反注册PerfServiceNative_userUnreg/PerfServiceNative_userUnregScn
老API的步骤
老API只能对CPU做调度,但是好处是可以直接指定开几个核,频率调到多少,还可以控制开大核还是小核。
PerfServiceNative_userReg可以指定几个核和多高的频率
PerfServiceNative_userRegBigLittle还可以用来指定调度大小核
PerfServiceNative_userEnable用来激活上面注册的场景,PerfServiceNative_userEnableTimeout可以指定激活的超时时间
PerfServiceNative_userDisable用来反激活
PerfServiceNative_userUnreg反注册
新API的步骤
新的API也可以调节GPU,但是采用的方式要复杂一些,就不再像老API一样直接指定核和频率了,需要定义配置
PerfServiceNative_userRegScn:没有参数,直接注册就好
PerfServiceNative_userRegScnConfig:用这个函数去真正指定配置
PerfServiceNative_userEnable/PerfServiceNative_userEnableTimeout:跟老API没有区别
PerfServiceNative_userDisable:还是老的API
PerfServiceNative_userUnregScn:反注册
老API开发指南
指定核和频率PerfServiceNative_userReg
定义一个需要scn_core个核,scn_freq频率运行的任务
PerfServiceNative_userReg(int scn_core, int scn_freq);
定义于:/mediatek/proprietary/hardware/perfservice/perfservicenative/PerfServiceNative.h
scn_core:开多少个核
scn_freq:频率调整到多少。如果只是希望多开几个核或者少开几个核,并不关注频率的话,可以置成0.
other:handler,用于后续的操作
注册指定大核小核PerfServiceNative_userRegBigLittle
定义一个需要scn_core个核,scn_freq频率运行的任务
PerfServiceNative_userRegBigLittle(int scn_core_big, int scn_freq_big,int scn_core_little, int scn_freq_little);
定义于:/mediatek/proprietary/hardware/perfservice/perfservicenative/PerfServiceNative.h
scn_core_big:开多少个核
scn_freq_big:频率调整到多少
scn_core_little:开多少个核
scn_freq_little:频率调整到多少
other:handler
在退出进程之前需要进行反注册
void PerfServiceNative_userUnreg(int handle);
激活和反激活
注册了之后也不是一直用啊,用的时候再打开吧,使用PerfServiceNative_userEnable。如果一旦忧心有可能出exception之类的流程不能保证走到PerfServiceNative_userDisable的话,也可以加个超时,调用PerfServiceNative_userEnableTimeout.
void PerfServiceNative_userEnable(int handle);
void PerfServiceNative_userDisable(int handle);
void PerfServiceNative_userEnableTimeout(int handle, int timeout);
void PerfServiceNative_userEnableTimeoutMs(int handle, int timeout);
handle: 注册成功后返回的那个
timeout: PerfServiceNative_userEnableTimeout是以秒为单位的超时时间,PerfServiceNative_userEnableTimeoutMs则以毫秒为单位。
新API开发指南
获取系统能力
PerfServiceNative_userGetCapability(int cmd);
cmd: 请参见下面的枚举值:
CMD_GET_CPU_FREQ_LEVEL_COUNT
CMD_GET_CPU_FREQ_LITTLE_LEVEL_COUNT = 1,
CMD_GET_CPU_FREQ_BIG_LEVEL_COUNT
CMD_GET_GPU_FREQ_LEVEL_COUNT
CMD_GET_MEM_FREQ_LEVEL_COUNT
CMD_GET_CPU_FREQ_LEVEL_COUNT:获取CPU频率级别
CMD_GET_CPU_FREQ_LITTLE_LEVEL_COUNT:获取小核CPU频率级别
CMD_GET_CPU_FREQ_BIG_LEVEL_COUNT:获取大核CPU频率级别
CMD_GET_GPU_FREQ_LEVEL_COUNT:获取GPU频率级别
CMD_GET_MEM_FREQ_LEVEL_COUNT:获取内存频率级别
因为新的API还需要指定配置,所以注册获取handle就不需要参数了。
PerfServiceNative_userRegScn();
反注册PerfServiceNative_userRegScn注册的handle。注意,跟PerfServiceNative_userUnreg不一样啊。
void PerfServiceNative_userUnregScn(int handle);
void PerfServiceNative_userRegScnConfig(int handle, int cmd, int param_1, int param_2, int param_3, int param_4);
handle:PerfServiceNative_userRegScn注册的handle。
param_1, param_2, param_3, param_4:根据命令不同的参数
命令请参见下面的枚举:
CMD_SET_CPU_CORE_MIN
CMD_SET_CPU_CORE_MAX
CMD_SET_CPU_CORE_BIG_LITTLE_MIN = 2,
CMD_SET_CPU_CORE_BIG_LITTLE_MAX = 3,
CMD_SET_CPU_FREQ_MIN
CMD_SET_CPU_FREQ_MAX
CMD_SET_CPU_FREQ_BIG_LITTLE_MIN = 6,
CMD_SET_CPU_FREQ_BIG_LITTLE_MAX = 7,
CMD_SET_GPU_FREQ_MIN
CMD_SET_GPU_FREQ_MAX
CMD_SET_MEM_FREQ_MIN
CMD_SET_MEM_FREQ_MAX
CMD_SET_VCORE
CMD_SET_SCREEN_OFF_STATE
CMD_SET_CPUFREQ_HISPEED_FREQ
CMD_SET_CPUFREQ_MIN_SAMPLE_TIME = 15,
CMD_SET_CPUFREQ_ABOVE_HISPEED_DELAY = 16,
CMD_SET_CPU_CORE_MIN:设置最少核数.参数1个 - param_1:核数
CMD_SET_CPU_CORE_MAX:设置最大核数.参数1个 - param_1:核数
CMD_SET_CPU_CORE_BIG_LITTLE_MIN:设置最少大小核数.参数2个 - param_1:大核数,param_2:小核数
CMD_SET_CPU_CORE_BIG_LITTLE_MAX:设置最大大小核数.参数2个 - param_1:大核数,param_2:小核数
CMD_SET_CPU_FREQ_MIN:设置最低频率.参数1个 - param_1:频率
CMD_SET_CPU_FREQ_MAX:设置最高频率.参数1个 - param_1:频率
CMD_SET_CPU_FREQ_BIG_LITTLE_MIN:设置最低大小核数.参数2个 - param_1:大核频率,param_2:小核频率
CMD_SET_CPU_FREQ_BIG_LITTLE_MAX:设置最高大小核数.参数2个 - param_1:大核频率,param_2:小核频率
CMD_SET_GPU_FREQ_MIN:设置GPU最低频率级别,参数1个 - param_1:频率级别
CMD_SET_GPU_FREQ_MAX:不支持
CMD_SET_MEM_FREQ_MIN:不支持
CMD_SET_MEM_FREQ_MAX:不支持
CMD_SET_VCORE:设置图形模式,参数1个:DRAM模式:0-默认模式,1-低功耗模式,2-还是默认模式,3-高性能模式
CMD_SET_SCREEN_OFF_STATE:设置关屏模式,一个参数,模式值。0-关屏无效,1-关屏有效,2-关屏暂停,打开恢复
CMD_SET_CPUFREQ_HISPEED_FREQ:设置高速频率,一个参数。
CMD_SET_CPUFREQ_MIN_SAMPLE_TIME:设置最小采样值,一个参数。
CMD_SET_CPUFREQ_ABOVE_HISPEED_DELAY:设置above speed hispeed,一个参数。
开关屏的参数,请使用下面的枚举值:
SCREEN_OFF_DISABLE
SCREEN_OFF_ENABLE
SCREEN_OFF_WAIT_RESTORE = 2,
Java调用PerfService
import IPerfServiceWrapper和PerfServiceWrapper
注册用户场景IPerfServiceWrapper.userReg
激活用户场景IPerfServiceWrapper.userEnable
执行用户场景
反激活用户场景IPerfServiceWrapper.userDisable
反注册用户场景IPerfServiceWrapper.userUnreg
IPerfServiceWrapper定义于
/frameworks/base/core/java/com/mediatek/perfservice/IPerfServiceWrapper.java
老API的步骤
老API只能对CPU做调度,但是好处是可以直接指定开几个核,频率调到多少,还可以控制开大核还是小核。
IPerfServiceWrapper.userReg可以指定几个核和多高的频率
IPerfServiceWrapper.userRegBigLittle还可以用来指定调度大小核
IPerfServiceWrapper.userEnable用来激活上面注册的场景,IPerfServiceWrapper.userEnableTimeout可以指定激活的超时时间
IPerfServiceWrapper.userDisable用来反激活
IPerfServiceWrapper.userUnreg反注册
新API的步骤
新的API也可以调节GPU,但是采用的方式要复杂一些,就不再像老API一样直接指定核和频率了,需要定义配置
IPerfServiceWrapper.userRegScn:没有参数,直接注册就好
IPerfServiceWrapper.userRegScnConfig:用这个函数去真正指定配置
IPerfServiceWrapper.userEnable/IPerfServiceWrapper.userEnableTimeout:跟老API没有区别
IPerfServiceWrapper.userDisable:还是老的API
IPerfServiceWrapper.userUnregScn:反注册
老API开发指南
指定核和频率PerfServiceNative_userReg
定义一个需要scn_core个核,scn_freq频率运行的任务
public int
userReg(int scn_core, int scn_freq);
scn_core:开多少个核
scn_freq:频率调整到多少。如果只是希望多开几个核或者少开几个核,并不关注频率的话,可以置成0.
other:handler,用于后续的操作
注册指定大核小核PerfServiceNative_userRegBigLittle
定义一个需要scn_core个核,scn_freq频率运行的任务
public int
userRegBigLittle(int scn_core_big, int scn_freq_big, int scn_core_little, int scn_freq_little);
scn_core_big:开多少个核
scn_freq_big:频率调整到多少
scn_core_little:开多少个核
scn_freq_little:频率调整到多少
other:handler
在退出进程之前需要进行反注册
public void userUnreg(int handle);
激活和反激活
注册了之后也不是一直用啊,用的时候再打开吧,使用PerfServiceNative_userEnable。如果一旦忧心有可能出exception之类的流程不能保证走到PerfServiceNative_userDisable的话,也可以加个超时,调用PerfServiceNative_userEnableTimeout.
public void userEnable(int handle);
public void userEnableTimeout(int handle, int timeout);
public void userEnableTimeoutMs(int handle, int timeout_ms);
public void userDisable(int handle);
handle: 注册成功后返回的那个
timeout: PerfServiceNative_userEnableTimeout是以秒为单位的超时时间,PerfServiceNative_userEnableTimeoutMs则以毫秒为单位。
新API开发指南
获取系统能力
public int
userGetCapability(int cmd);
cmd: 请参见下面的常量值:
public static final int CMD_GET_CPU_FREQ_LEVEL_COUNT
public static final int CMD_GET_CPU_FREQ_LITTLE_LEVEL_COUNT = 1;
public static final int CMD_GET_CPU_FREQ_BIG_LEVEL_COUNT
public static final int CMD_GET_GPU_FREQ_LEVEL_COUNT
public static final int CMD_GET_MEM_FREQ_LEVEL_COUNT
CMD_GET_CPU_FREQ_LEVEL_COUNT:获取CPU频率级别
CMD_GET_CPU_FREQ_LITTLE_LEVEL_COUNT:获取小核CPU频率级别
CMD_GET_CPU_FREQ_BIG_LEVEL_COUNT:获取大核CPU频率级别
CMD_GET_GPU_FREQ_LEVEL_COUNT:获取GPU频率级别
CMD_GET_MEM_FREQ_LEVEL_COUNT:获取内存频率级别
因为新的API还需要指定配置,所以注册获取handle就不需要参数了。
public int
userRegScn();
反注册PerfServiceNative_userRegScn注册的handle。注意,跟PerfServiceNative_userUnreg不一样啊。
public void userUnregScn(int handle);
public void userRegScnConfig(int handle, int cmd, int param_1, int param_2, int param_3, int param_4);
handle:PerfServiceNative_userRegScn注册的handle。
param_1, param_2, param_3, param_4:根据命令不同的参数
命令请参见下面的常量:
public static final int CMD_SET_CPU_CORE_MIN
public static final int CMD_SET_CPU_CORE_MAX
public static final int CMD_SET_CPU_CORE_BIG_LITTLE_MIN = 2;
public static final int CMD_SET_CPU_CORE_BIG_LITTLE_MAX = 3;
public static final int CMD_SET_CPU_FREQ_MIN
public static final int CMD_SET_CPU_FREQ_MAX
public static final int CMD_SET_CPU_FREQ_BIG_LITTLE_MIN = 6;
public static final int CMD_SET_CPU_FREQ_BIG_LITTLE_MAX = 7;
public static final int CMD_SET_GPU_FREQ_MIN
public static final int CMD_SET_GPU_FREQ_MAX
public static final int CMD_SET_MEM_FREQ_MIN
public static final int CMD_SET_MEM_FREQ_MAX
public static final int CMD_SET_SCREEN_OFF_STATE
public static final int CMD_SET_CPUFREQ_HISPEED_FREQ
public static final int CMD_SET_CPUFREQ_MIN_SAMPLE_TIME = 14;
public static final int CMD_SET_CPUFREQ_ABOVE_HISPEED_DELAY = 15;
public static final int CMD_SET_VCORE
CMD_SET_CPU_CORE_MIN:设置最少核数.参数1个 - param_1:核数
CMD_SET_CPU_CORE_MAX:设置最大核数.参数1个 - param_1:核数
CMD_SET_CPU_CORE_BIG_LITTLE_MIN:设置最少大小核数.参数2个 - param_1:大核数,param_2:小核数
CMD_SET_CPU_CORE_BIG_LITTLE_MAX:设置最大大小核数.参数2个 - param_1:大核数,param_2:小核数
CMD_SET_CPU_FREQ_MIN:设置最低频率.参数1个 - param_1:频率
CMD_SET_CPU_FREQ_MAX:设置最高频率.参数1个 - param_1:频率
CMD_SET_CPU_FREQ_BIG_LITTLE_MIN:设置最低大小核数.参数2个 - param_1:大核频率,param_2:小核频率
CMD_SET_CPU_FREQ_BIG_LITTLE_MAX:设置最高大小核数.参数2个 - param_1:大核频率,param_2:小核频率
CMD_SET_GPU_FREQ_MIN:设置GPU最低频率级别,参数1个 - param_1:频率级别
CMD_SET_GPU_FREQ_MAX:不支持
CMD_SET_MEM_FREQ_MIN:不支持
CMD_SET_MEM_FREQ_MAX:不支持
CMD_SET_VCORE:设置图形模式,参数1个:DRAM模式:0-默认模式,1-低功耗模式,2-还是默认模式,3-高性能模式
CMD_SET_SCREEN_OFF_STATE:设置关屏模式,一个参数,模式值。0-关屏无效,1-关屏有效,2-关屏暂停,打开恢复
CMD_SET_CPUFREQ_HISPEED_FREQ:设置高速频率,一个参数。
CMD_SET_CPUFREQ_MIN_SAMPLE_TIME:设置最小采样值,一个参数。
CMD_SET_CPUFREQ_ABOVE_HISPEED_DELAY:设置above speed hispeed,一个参数。
Java调用例
WebView中的应用例
public void loadData(String data, String mimeType, String encoding) {
checkThread();
if (TRACE) Log.d(LOGTAG, "loadData");
/// M:PerfBoost include @{
if (sFirstLoadData) {
int maxFreq = 0;
String freqFile = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq";
RandomAccessFile reader = new RandomAccessFile(freqFile, "r");
String stringMaxFreq = reader.readLine();
reader.close();
maxFreq = Integer.parseInt(stringMaxFreq);
} catch (IOException | NumberFormatException e) {
e.printStackTrace();
if (maxFreq != 0) {
sPerfService = new PerfServiceWrapper(null);
if (sPerfService != null) {
int minCPU = 2;
if (maxFreq & 1100000)
minCPU = 4;
sPerfHandle = sPerfService.userReg(minCPU, maxFreq);
if (sPerfHandle != -1) {
sPerfService.userEnableTimeoutMs(sPerfHandle, 500);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
sPerfService.userUnreg(sPerfHandle);
sFirstLoadData =
mProvider.loadData(data, mimeType, encoding);
AmS和WmS中的应用例
下面是/frameworks/base/services/core/java/com/android/server/am/ActivityStack.java中定义的perfBoost的两个方法,一个是perfBoostResume,另一个是perfBoostPause.
这个就是下节我们要介绍的SCN_APP_SWITCH场景。
private void perfBoostResume() {
if (mPerfService == null) {
mPerfService = new PerfServiceWrapper(null);
if (mPerfService != null) {
Trace.asyncTraceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "amPerfBoost", 0);
if (DEBUG_PERFSRV) {
Slog.d(TAG, "boostEnableTimeoutMs(" +
IPerfServiceWrapper.SCN_APP_SWITCH + ") cross app");
mPerfService.boostEnableTimeoutMs(IPerfServiceWrapper.SCN_APP_SWITCH,
BOOST_ENABLE_TIMEOUT);
Slog.e(TAG, "PerfService is not ready!");
public void perfBoostPause() {
if (mPerfService == null) {
mPerfService = new PerfServiceWrapper(null);
if (mPerfService != null) {
if (DEBUG_PERFSRV) {
Slog.d(TAG, "boostDisable(" +
IPerfServiceWrapper.SCN_APP_SWITCH + ") cross app");
mPerfService.boostDisable(IPerfServiceWrapper.SCN_APP_SWITCH);
Trace.asyncTraceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, "amPerfBoost", 0);
Slog.e(TAG, "perfBoostPause, PerfService is not ready!");
我们再看一个
if (!mIsPerfBoostEnable) {
if (mPerfService == null) {
mPerfService = new PerfServiceWrapper(null);
mPerfService.boostEnable(IPerfServiceWrapper.SCN_APP_ROTATE);
mIsPerfBoostEnable =
MTK预定义的一些场景
MediaTek预定义了这么多API,当然它自己也会有自己的预定义场景,这些场景就不需要再定义了。
libperfservice.so中预定义的场景
SCN_APP_SWITCH
app启动、退出
SCN_APP_ROTATE
app rotate
SCN_APP_TOUCH
但是,这个值肯定不是在所有平台上都是最优的值啊,所以MTK也提供了客户定制化的机制。
定制预定义场景
定义于/vendor/mediatek/proprietary/hardware/perfservice/mt[xxxx]/scn_tbl/perfservscntbl.txt中。
我们以MT6735为例,来看一看具体的内容,定义于/vendor/mediatek/proprietary/hardware/perfservice/mt6735/scn_tbl/perfservscntbl.txt中。
CMD_SET_CPU_CORE, SCN_APP_TOUCH, 3
CMD_SET_CPU_FREQ, SCN_APP_TOUCH, 819000
CMD_SET_CPU_CORE, SCN_SW_FRAME_UPDATE, 3
CMD_SET_CPU_FREQ, SCN_SW_FRAME_UPDATE, 819000
CMD_SET_CPU_CORE, SCN_APP_SWITCH, 4
CMD_SET_CPU_FREQ, SCN_APP_SWITCH, 1300000
CMD_SET_CPU_UP_THRESHOLD, SCN_SW_FRAME_UPDATE, 80
CMD_SET_CPU_DOWN_THRESHOLD, SCN_SW_FRAME_UPDATE, 65
CMD_SET_CPU_CORE, SCN_APP_LAUNCH, 4
CMD_SET_CPU_FREQ, SCN_APP_LAUNCH, 1300000
定义于:/vendor/mediatek/proprietary/hardware/perfservice/mt[xxxx]/app_list/perfservapplist.txt
格式:包名 核数
com.imangi.templerun2 3
关于如何实现的例子,请参见第二篇:MTK PerfService (2) - PerfService的落地
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@ 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
一个稳定可靠的集中式访问控制服务。您可以通过访问控制将阿里云资源的访问及管理权限分配给您的企业成员或合作伙伴。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
阿里云双11狂欢,不只是5折
Loading...利用ADB固定Android手机的CPU频率 - Csdn_Ting377的博客 - CSDN博客
利用ADB固定Android手机的CPU频率
工作过程中,我需要对Android手机的CPU数据做一些分析,但是发现CPU频率是一直变化的,于是用了以下方法将其固定下来。
1.将手机与电脑连接,确认可以在CMD窗口使用ADB,输入 adb devices 查看与本机连接的虚拟Android设备。图中13a1ca1c即为我的Android手机序列号。
adb -s 13a1ca1c(手机序列号) shell,进入手机的shell模式。由于更改CPU频率需要root权限,再输入 su获取手机root权限。”$”变成”#”即表明成功获取root权限。
3.访问/sys/devices/system/cpu文件目录,这一目录下有关于手机CPU的各种信息,比如CPU核数、频率、各核的运行状态等。输入命令查看CPU支持哪些governor模式,其中会有一个userspace用户自定义模式,该模式为用户提供了调节CPU运行频率的接口。
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
输入命令将governor模式修改为userspace。
echo "userspace" & /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
4.CPU频率虽然可以更改,但是只能支持某几个固定的值,而不能任意更改。输入命令查看CPU可以支持的频率值。
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
5.选择一个支持的频率,比如我选择918000Hz进行设定,命令为
echo "918000" & /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
6.输入命令查看当前CPU频率,验证设置成功。
‘cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq’
我的热门文章怎样让CPU工作在自己想要的固定的频率【笔记本吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,152,174贴子:
怎样让CPU工作在自己想要的固定的频率收藏
夏天笔记本玩游戏CPU温度容易太高,用一些常用的节能降温软件cpu频率又太低,影响游戏,有没有更好的方法
笔记本电脑 ,线缆节特惠专场,认证会员专享优惠,硬盘存储路由套餐,音视频空调特价专场,全场裸价钜惠,给你不一样的采购狂欢!
setcpu→_→
你用过哪些软件降得太多了?
setcpu好像是手机用的,能在笔记本上用吗
360硬件大师上的
进电源选项把处理器电源管理的最大设置为接通电源90%试试
真是感谢你,我试了下,这下不影响游戏了,温度也比原先100%时低了,太好用了
电源选项→选定一个电源计划或者创建→更改计划设置→更改高级电源设置→处理器电源管理→更改最大最小处理器状态的百分比
就可以固定想要最小最大的频率
可以用任务管理器的性能数值来参照
登录百度帐号推荐应用

我要回帖

更多关于 怎么看cpu频率 的文章

 

随机推荐