iPhone 17e性能飞跃,关键优化提前曝光
|
那天晚上十一点四十七,测试间灯管闪第三下时我正把那个大版本的第七轮压力包砸进A12小核——结果它自己退到锁屏了。不是crash,不是ANR,就是锁屏,像手机突然想起自己该睡觉了。组长蹲在隔壁工位隔板边看log,手里捏着半根没点的烟,我说这不对劲,他头都没抬:“再跑三轮,你先去趟茶水间。” 我原以为是调度器策略冲突,毕竟上一版切过两次governor fallback逻辑。结果拆到thermal throttling trace里才发现,根本没热起来——CPU die temp最高才三十九度。可它就是退屏。退得特别礼貌,连动画都走完了。开发过来拿走我的设备时顺手摸了下后盖:“啧,凉的啊。”我盯着他指甲缝里的焊锡灰,心想这人上周还在说“thermal不是我的锅”。 桌上三杯没喝的咖啡。第一杯是凌晨两点冲的,奶泡早塌成一圈黄边;第二杯下午四点灌的,杯底沉着三粒方糖没化开;第三杯就摆在键盘右边,塑料盖子翘起一条缝,露出里面深褐色液体表面一层细密的油膜。我动都没动它。不是不想喝,是怕喝完打个嗝,误判某次IPC唤醒的timing margin。 这个我敢打包票:iPhone 17e性能飞跃,关键优化提前曝光——但不是什么AI算力翻倍,是优胜劣汰。真·物理层面的淘汰。那个大版本里,所有被调度器标记为“低价值线程”的,直接不进CpuCluster,连排队资格都没有。不是限频,是拒绝入场。你测perfetto看trace,会发现thread state从R直接跳成X,中间没有S,没有D,没有W。像地铁闸机刷脸失败后,人还没反应过来,闸门已经无声合拢。 产品经理昨儿中午堵我工位,衬衫第三颗扣子绷开了,举着平板划给我们看渲染帧率曲线:“你看这个爬升多顺!”我指着底下那行灰色小字——“(含GPU idle injection)”。他愣了两秒,把平板倒扣在隔板上,转身就去翻build config。我盯着他后颈汗毛竖起来的样子,忽然想起上一版我们偷偷绕过vendor driver的sync fence做double-buffer bypass,结果产测过不了,最后全量回滚。那个回滚patch,commit message写的是“fix flicker”,实际删掉了七百行custom vblank override。没人提,也没人问。 工位隔板上贴的便利贴是蓝的,不是公司发的黄色那种,是某次团建抽奖抽的,上面用红笔写着“别信perf stat -e cycles:k”,字迹潦草,右下角画了个歪斜的箭头,指向我显示器边框。这张贴纸已经在这里贴了四个月零三天,胶面发白,四个角翘起,但红笔字还清晰。前天晨会我听见开发和组长争论“kprobe是否影响scheduler latency”,我说了句“那个蓝贴纸底下压着去年十二月的trace对比”,两人当场静音五秒,然后开发把笔记本转过去,自己重新数了三遍irq time。我数的是三遍,他数的可能不是同一段。
外观展示图,仅供参考 但有些事我说不准。比如为什么这次预埋的throttling mask会在低负载场景触发——按理说idle时间占比超过八十七,不该激活任何mask。又比如那台A14样机,烧录完那个大版本后,连续七十二小时没进过thermal throttle,却在第三天下午三点零六分,自己降频到600MHz持续十八秒,期间所有sensor读数都在spec范围内。开发查了一整晚,最后邮件主题写着“暂归因于PMIC firmware phase-shift alignment drift(?)”。那个问号是我加的,他原邮件没写。 凌晨打车回家的司机在听评书,讲隋唐,单田芳的声音从副驾后座飘出来,字字带气口:“…秦叔宝一马当先——哎哟!这马蹄子怎么踩空了?”我盯着车窗外倒退的广告牌,LED灯在雨里拉出橙红色残影,忽然想起上一版封版前夜,也是这个时间,我在实验室抓到一个bug:某个camera HAL callback在SurfaceFlinger合成间隙被dispatch了两次,第一次没响应,第二次触发双free。当时修复方案是加mutex——结果上线后发现,mutex本身让UI thread卡了三百七十二毫秒。最后靠砍掉一次callback注册解决。没人记得这事。就像现在没人记得,那个大版本里,我们悄悄把所有onTrimMemory回调的优先级设成了THREAD_PRIORITY_LOWEST——比GC还低一级。系统真到了内存紧张那一刻,APP连喊疼的机会都没有。 所以别跟我说“性能飞跃”是IPC提升或者cache prefetch增强。是它开始主动剔除。不是优化,是筛选。就像筛麦子,风一来,秕谷自己飞出去,不用你动手。但问题是——谁定的哪粒是秕谷?我测过三十七种后台驻留组合,有二十一种,APP活着,但trace里找不到它的线程存在痕迹。它们没死,只是被系统当成不存在了。我截过图,发给开发,他回:“哦,这叫soft kill,不算bug。” 我现在要重跑一遍所有baseline,但得先等那台A12跑完当前这轮。它还在锁屏,已经十六分钟了。屏幕右上角时间显示正常,信号格也满,就是不动。我试过按电源键、音量键、甚至把SIM卡托盘拔出来又塞回去——它锁着屏,呼吸灯都不闪。像在赌气。或者,在执行某个我没看见的指令。 我明天早上八点前得把fail case清单交上去。但有三个问题我现在没法填:一个是那个锁屏的复现路径,一个是PMIC那十八秒降频是不是只发生在周二,第三个是——我到底要不要把便利贴下面那张旧trace打印出来,夹在报告里? (编辑:171手机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

