iPhone 17e性能大跃升,神秘新特性曝光
|
亲历现场。那个大版本封版前四十八小时,我盯着三台同批次样机跑第七轮压力序列,屏幕右上角温度监控飘到四十三度——但不是关键。关键是A12模组在跑完第五次GPU重载后,自动降频触发点从预设的八十二度往下偏移了六度,而B17模组反而更耐烧,C09倒是在第七次就弹出“系统资源临时回收”日志。我截图发给开发,他回了个OK手势,十分钟后组长进来,手指直接戳我屏幕边缘那个没关掉的后台悬浮窗:“你关不关?闪得我左眼跳。”我说我没开悬浮窗,他说那你自己看。结果是测试框架新埋的调试探针在非debug模式下没清注册,一帧一闪,灯管也跟着同步频闪,就是工位顶上那根老荧光管,滋啦滋啦,闪了整整二十七分钟。 桌上三杯咖啡,全冷透了。第一杯是我凌晨三点泡的,第二杯是产品经理推门时顺手搁下的,说“这个特性你们先压测着”,第三杯是开发蹲我隔板边改热补丁时,把保温杯盖拧下来扣在杯沿上、又拧回去、再推过来的。他指甲缝里有焊锡灰,我就知道他刚扒完BGA返修台。我没喝第三杯,盖子上还沾着一点灰印,后来被我拿纸巾擦掉了,但纸巾揉成团塞进抽屉前,我数了三遍——二十一团,全是今早用的。
外观展示图,仅供参考 “iPhone 17e性能大跃升,神秘新特性曝光”?呵。我原以为这标题是市场那边吹风用的烟雾弹,结果拆包看到那个大版本的驱动层调度策略变更说明,才明白什么叫“优胜劣汰”。不是升级,是砍。砍掉所有非主线程保活逻辑,砍掉IPC中间层缓存兜底,砍掉旧协议栈兼容分支——连SVC异常向量表都重新排布了,空出四百一十二字节放了一个叫“bypass_if_sanity_fail”的钩子。我敢打包票:这个钩子没文档,没注释,连git blame里都查不到是谁加的,只在那个大版本第三版固件里出现过一次,上一版还没有。它触发条件极其刁钻:必须是温控+内存碎片率+IPC超时三者在同一个毫秒窗口内耦合,漏掉任意一个,它都不动。但只要它动了,整个UI线程就跳过七步校验直奔渲染,画面是丝滑了,后台音频解码器却会哑十八秒。我们抓到过两次——第一次是凌晨四点十七分,第二次是早上九点零三分,间隔正好十七小时四十六分钟。不是周期性,是状态累积型,像老式继电器吸合前的震颤。工位隔板上贴的便利贴还在。蓝底白字,我写的:“勿动P16信号链路测试脚本——改了会丢timestamp精度”。上周三贴的,至今没人撕,也没人动。旁边还有产品经理用红笔画的箭头,指向隔壁工位贴着的另一张:“重点盯iOS侧Binder超时折叠逻辑”,箭头末尾打了个问号。那个问号我盯着看了三百七十二次,直到今天下午两点十九分,他本人拎着半块没吃完的牛角包路过,看见我还在看,抬手就把问号涂成了叹号。叹号墨水是深蓝色,和便利贴底色几乎一样,要歪头四十五度才看得清。我说这逻辑真能折叠?他说“折叠”是委婉说法,其实是“裁断”,裁掉所有不可观测路径。我说那可观测路径里还有两处死锁风险。他咬了一口牛角包,酥皮渣掉在键盘F键上,没吭声。 最绝的是那个热补丁的下发机制。开发说是“原子级热更新”,结果我在logcat里翻到一行:“[HOTPATCH] rollback due to vmap_alloc fail on node_2”。不是失败了,是回滚了。但它回滚的不是代码,是内存页映射关系——把原来分配给GPU命令缓冲区的两页连续物理内存,悄悄切给了kswapd。我拿addr2line反查,函数名叫do_panic_recover_v3,但panic没发生,recover也没执行,v3结尾还多了一行注释:“// for demo only, delete before sign-off”。这个我敢打包票,注释是昨天凌晨一点四十七分加的,git show -s --format='%h %ad' 5a2f4c1;那个commit没推到主干,只在我本地分支里躺着,因为开发让我帮他确认“有没有可能绕过page lock做lazy reclaim”。我说有,但代价是音频延迟抖动方差翻三倍。他点点头,去茶水间接水,水龙头坏了,滴答、滴答、滴答,一共三十七下,我才反应过来他根本没听进去。 凌晨打车回家的司机在听评书,《隋唐演义》单田芳版,正讲到秦琼卖马那一段。车窗起雾,我拿手指画了个方框,框住外面路灯的光晕,框里恰好能看清手机屏上刚收到的邮件预览:“……建议暂缓对A12模组开启new sched policy,因thermal headroom未收敛。”我没点开,就盯着那方框里的光晕看了好久。方框边上水汽开始往下滑,一条细线,断成三截。我突然想起来,上一版有个bug,是当用户快速横竖屏切换超过九次之后,SurfaceFlinger会把VSYNC信号错标为invalid,但只在三星AMOLED屏上复现。我们当时标记为“低优先级,三星特供”,现在那个bug出现在新调度策略里,只不过换了触发条件:换成GPU负载阶梯跳变五次以上。我原以为这是个兼容问题,结果昨天跟底层驱动团队对线,他们说:“哦,那个啊,我们把它吸收进thermal-throttling-fallback-path了,算优化。” 算了。我现在去重跑P16脚本,把timestamp精度调回纳秒级。如果还能抓到那个十八秒的音频哑音,就直接把热补丁分支推到QA私有仓,标上“含bypass_if_sanity_fail,请勿merge”。别的,等明天晨会再说。反正产品经理还没改掉便利贴上的叹号。 (编辑:171手机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

