Redmi K90选购指南:性能旗舰的硬核解析
|
亲历现场。那个大版本封版前四十八小时,我盯着K90的热区图看了一整夜——不是看温升曲线,是看它怎么在压测中途把调度策略自己改了三回。我原以为是thermal hal限制松动,结果扒log发现是core_ctl在后台偷偷切了group affinity,连vendor层的sched_boost_flag都跟着飘。这个我敢打包票,trace里timestamp对得上,但谁改的?没人认。 桌上三杯没喝的咖啡,中间那杯奶泡早塌成灰白色一圈,边上还沾着半片饼干渣。组长凌晨两点推门进来,手指直接戳我屏幕边框:“再跑三轮,重点盯IO密集场景下那个reclaim hang”,说完转身就去敲隔壁开发工位隔板,砰砰两声,跟敲门似的。开发头都没抬,左手继续敲键盘,右手捏着手机往耳朵上贴,嘴型是“等我挂了这通”。我低头看表,十八秒。 Redmi K90选购指南:性能旗舰的硬核解析——这标题印出来那天,市场部邮件抄送全组,字体加粗,还带个感叹号。可我们测的哪是什么“解析”?是优胜劣汰。你信不信?真话:上一版的GPU boost策略,在K90上直接被砍掉三成调度阈值,不是调低,是删配置项。代码仓库里commit message写的是“cleanup obsolete policy”,底下author栏空着,reviewer签了个缩写——我翻了三天没对上人名。但你知道最绝的是什么?那个删掉的策略,在某个非公开的MIUI内测分支里,又以“performance hint”的名义回来了,只对特定游戏包名生效。这事儿我说不准,log太碎,patch又混在五六个base patch里,没单独拎出来过。 测试间顶灯管闪,不是规律性地频闪,是每隔二十三分钟闪一次,像呼吸,持续七秒,然后停。我试过换灯座,也试过把电源线从UPS拔下来直插墙排——一样。后来发现只要我把笔记本风扇转速手动拉到最大档,灯就不闪。这逻辑我到现在没理顺,但那天晚上它闪了九次,每次我都抬头确认时间,顺便数了数便利贴:工位隔板右上角贴了四张,蓝底白字那种,最新那张写着“勿动UFS 3.1 VDDQ电压表”,墨迹有点糊,像是被谁袖口蹭过。 跟人吵架是在封版前十二小时。产品经理端着保温杯站我身后,看我跑第十七轮内存压力测试,突然说:“K90这代散热模组比上一代厚0.3mm,你们压测用的夹具是不是该更新?”我回头看了她一眼,没接话。她又补一句:“用户感知的是体感温度,不是结温。”我点头,然后点开proc/sys/kernel/sched_latency_ns,把值从18ms改成24ms,重新跑——结果thermal throttle反而提前了四百一十二毫秒。这个我敢打包票,trace和kmsg timestamp差不了三百微秒。但她听不懂,她只知道“厚0.3mm”要进PPT。我原以为改个参数就能绕过问题,结果核心态里的boost_group_policy压根不认新latency,它自己按旧周期算timer。所以最后交的报告里,我把thermal部分删了两段,只剩一句话:“策略协同存在窗口错位,建议下游合入v2.3后重验。” 凌晨打车回家的司机在听评书,《岳飞传》第七十五回,说到牛皋踹死金兀术那段,他笑出声,手拍方向盘,我盯着窗外路灯拖出的光带想:K90那颗SoC的big cluster唤醒延迟,在静默场景下居然比上一版还高一点,就一点点,但足够让两个APP冷启时抢同一个timerfd。没人会测这个,因为它不崩、不卡、不报错,只是快了两帧又慢了三帧,像心跳漏半拍。但用户刷短视频时会莫名顿一下,再滑就顺了。这玩意儿没法复现,也没法截图,更没法放进交付文档里。我试过用systrace抓,但trace buffer撑不到第五秒就溢出——不是设备问题,是systrace daemon本身在K90上有个隐藏的ring buffer size锁死在64MB,release build里根本关不掉。这个我说不准,因为build脚本里没搜到相关宏定义,但dump出来的buffer_header结构体偏移量对不上AOSP主线……算了,先放着。 昨天路过D3栋二楼洗手间,看见开发蹲在镜柜后面修自动感应水龙头,扳手搁在地上,旁边一卷银色胶带。我停下问他:“你们那边VSYNC分发的sync timeline有没有改过?”他拧紧最后一个螺丝,站起来抹了把汗:“没动timeline,改了sync framework的timeout默认值,从500ms压到300。”我哦了一声,心想这事儿跟K90的触控预测窗口偏差有关系没?没问。反正明天上午十点还得进lab做最后一轮OTA升级中断稳定性回溯——现在不确定要不要把那台烧过三次主板的样机也带上,它开机后第二十七分钟必掉一次modem,但log里没有任何error标记,只有三行无关的pmic reg dump,全是0x0000。
外观展示图,仅供参考 下次测K系列,我得提前把测试脚本里所有sleep()替换成usleep_range(),至少试试。不然总感觉在跟一堆自己都不认识的timer打架。 (编辑:171手机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

