本帖最后由 莫问刀 于 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
关闭之后,可以通过软件看看情况。
如果想模拟更极端情况,可以保留cup0来测试,单核如果流畅运行,你还担心盒子上面会卡?
在这种环境下我们就可以开始运行自己写的App了,我这边是公司的tv项目,因为在做列表滑动优化,经过优化后,在这种低配环境下不掉帧,基本上到了其他盒子也稳定跑。
剩下的就是抓trace看帧数据了。
总结
得益于现在硬件提升太快了,很多人,很多公司在写软件的时候都不考虑性能优化的。
就导致了在老设备上面运行软件各种掉帧,卡顿,anr。很无语。
我们的客户基本上都是4.4,512mb -1024mb内存系统emmc储存的古董盒子,要写好App压力有点大,目前在不断优化中。
搞事情得益于root环境,所以大家想模拟出各种环境,还是得有一台能玩的设备。
关核心,应该是和系统的省电模式一个道理,极限省电模式可能是只留下一个小核心在跑了。在手机快没电了可以通过关核心来省电。
可以写个软件通过软件来打开和关闭核心,有时间再写吧~~
|