吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1971|回复: 15
收起左侧

[其他原创] Android 关闭CPU核心模拟低配环境

  [复制链接]
debug_cat 发表于 2023-2-24 10:06
本帖最后由 莫问刀 于 2023-2-24 10:06 编辑

背景

手机性能太强了,代码写得再烂也被高性能处理包容,我需要把手机降至低配环境来模拟盒子的情况,这要怎么做呢。查到资料,可以关闭CPU的核心或者限制频率来达到目的。
仅限于骁龙CPU。模拟低配环境来测试软件的流畅性,是否卡顿掉帧,或者anr。

环境要求

设备必须root!
骁龙CPU。
adb。

开始搞事


adb shell
su
cd /sys/devices/system/cpu

drwxr-xr-x 10 root root    0 1970-07-09 21:44 cpu0
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu1
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu2
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu3
drwxr-xr-x  9 root root    0 2022-01-15 17:15 cpu4
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu5
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu6
drwxr-xr-x  8 root root    0 2022-01-15 17:15 cpu7

这是我骁龙845,8核心,0-7开始数字越大,性能越强。
比如0-3是小核心。
3-6是中核心。7是大核心。
如果是最近架构比如888,8g1,7是超大核。

我们可以关闭中核心和大核心保留4个小核心。


blueline:/sys/devices/system/cpu # echo "0" > cpu7/online
blueline:/sys/devices/system/cpu # echo "0" > cpu6/online
blueline:/sys/devices/system/cpu # echo "0" > cpu5/online
blueline:/sys/devices/system/cpu # echo "0" > cpu4/online

关闭之后,可以通过软件看看情况。

1677203252_1.png

如果想模拟更极端情况,可以保留cup0来测试,单核如果流畅运行,你还担心盒子上面会卡?
1677203252_2.png

在这种环境下我们就可以开始运行自己写的App了,我这边是公司的tv项目,因为在做列表滑动优化,经过优化后,在这种低配环境下不掉帧,基本上到了其他盒子也稳定跑。

剩下的就是抓trace看帧数据了。

总结

得益于现在硬件提升太快了,很多人,很多公司在写软件的时候都不考虑性能优化的。
就导致了在老设备上面运行软件各种掉帧,卡顿,anr。很无语。

我们的客户基本上都是4.4,512mb -1024mb内存系统emmc储存的古董盒子,要写好App压力有点大,目前在不断优化中。
搞事情得益于root环境,所以大家想模拟出各种环境,还是得有一台能玩的设备。

关核心,应该是和系统的省电模式一个道理,极限省电模式可能是只留下一个小核心在跑了。在手机快没电了可以通过关核心来省电。

可以写个软件通过软件来打开和关闭核心,有时间再写吧~~

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
junjia215 + 1 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
sob13600 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2023-2-24 10:12
本帖最后由 侃遍天下无二人 于 2023-2-24 10:16 编辑

啊哈哈哈,是的,很多线程安全和内存泄漏问题在高性能下是暴露不出来的
反正我解决线程安全的思路很简单,直接给整个类加锁就完了,然后在哪个机子上正常就放哪个机子跑,毕竟我写/改的app也没几个人用,而且一般也不需要开太久,在崩溃之前肯定能完成任务
 楼主| debug_cat 发表于 2023-2-24 10:28
补补23456 发表于 2023-2-24 10:26
这种测试方法挺不错的。不过我平时在电脑上用安卓虚拟机就挺卡了可能是电脑配置太低

不能用虚拟机,比较虚拟机用的是电脑的虚拟化技术,而且是x86架构吧,手机都是arm的了,要模拟就应该用真机。模拟器意义不大。
补补23456 发表于 2023-2-24 10:26
这种测试方法挺不错的。不过我平时在电脑上用安卓虚拟机就挺卡了可能是电脑配置太低
 楼主| debug_cat 发表于 2023-2-24 10:27
侃遍天下无二人 发表于 2023-2-24 10:12
啊哈哈哈,是的,很多线程安全和内存泄漏问题在高性能下是暴露不出来的
反正我解决线程安全的思路很简单, ...

我现在的项目用户kw的
fyabcabc 发表于 2023-2-24 10:34
楼主图片上的软件是什么
 楼主| debug_cat 发表于 2023-2-24 10:37
fyabcabc 发表于 2023-2-24 10:34
楼主图片上的软件是什么

scene4,最新版本应该是5了
smile1110 发表于 2023-2-24 12:11
关闭后怎么再打开呀
 楼主| debug_cat 发表于 2023-2-24 12:31
smile1110 发表于 2023-2-24 12:11
关闭后怎么再打开呀

[C++] 纯文本查看 复制代码
echo "0" > cpu4/online关闭
echo "1" > cpu4/online恢复

点评

还有件事哥们,这个关闭手机重启后依旧关闭不,我想把我的865的大核关了省电  详情 回复 发表于 2023-2-24 13:44

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
smile1110 + 3 + 1 我很赞同!

查看全部评分

smile1110 发表于 2023-2-24 13:44

还有件事哥们,这个关闭手机重启后依旧关闭不,我想把我的865的大核关了省电
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表