iPhone 17e性能飞跃!分析师深度前瞻
|
亲历现场。那个大版本封版前四十八小时,我蹲在B12测试间第三排靠窗工位,盯着灰屏上的重启计数器跳到一百一十七——它卡在一百一十七,不往上走,也不往下掉,就那么悬着。我原以为是看错了,凑近了盯三秒,伸手按住电源键十秒再松开,它还是停在一百一十七。隔壁组老张探头问“稳了吗”,我摇头,他拎着保温杯回去了,杯底磕在隔板上“铛”一声。 桌上三杯没喝的咖啡,最左那杯奶皮子结成薄痂,中间那杯冷透了浮着油星,右边那杯还冒热气,是十一点半产品经理硬塞进来的——她当时指甲油剥了一块,在键盘上敲出咔哒咔哒的节奏,说“这个体验我们想做成呼吸感”。呼吸感?我盯着日志里第十八秒的kernel panic堆栈,连喘气都得掐着点吸——吸太深触发thermal throttle,吸太浅进不了深度idle,纯靠胸腔抽搐式代偿。我敢打包票:那个panic里第七行的函数名,拼错了,少了个下划线,但开发坚持说“编译过,没问题”,结果呢?三百七十二次复现,全栽在这少掉的半根横线上。 测试间的灯管闪。不是整排,就我头顶那根,每隔四十七秒左右闪一下,黄光拖着绿尾,像旧CRT显示器的场同步抖动。我没换,懒得报修——报了也是等备件,不如盯死log里的irq延迟毛刺。可它闪的时候,我总忍不住数:一、二、……数到七次,就想起上一版封版前一天,开发在群里甩来个patch,标题写着“修复休眠唤醒抖动”,内容却是把suspend路径里一个delay_ms()从五十改成五十加一。我说这改的什么鬼,他回“测出来更稳”。我真去跑了八百轮,结果抖得更欢——wake up后首帧丢率从百分之三点二蹿到七点六,还带紫边。这算哪门子优胜劣汰?是把病灶当勋章别胸前了。
外观展示图,仅供参考 工位隔板上贴的便利贴,蓝边,歪斜,上面是我写的:“别信‘平滑过渡’,查wakeup source mask和irq affinity set的时序差”。字是凌晨三点写的,油墨有点洇,右下角蹭了咖啡渍。产品经理昨天看见,拿手机拍了照,说“这个很直观”,转身发进高管群。我没拦,拦了也没用。她根本不知道mask和affinity谁先刷进寄存器,就像她不知道自己PPT里写“性能飞跃”的时候,测试机正卡在S3 resume的第十三个check point上,风扇转速已经顶到一万两千转,声音像电钻啃钢筋——可日志里timestamp全正常,数字漂亮得能挂展厅。漂亮,是啊,漂亮得连error code都自动打码了,你猜怎么打?全替换成“0x80000007”,翻遍所有驱动文档,没这一条。开发说“这是新定义”,我查源码发现——压根没进git,是编译时硬塞的字符串。我说不准这是谁塞的,但我知道,那个补丁包解压后多出一个叫“fake_status.bin”的空文件,大小零字节。 凌晨打车回家的司机在听评书,说的是《杨家将》,正讲到杨七郎被乱箭射死那段,声音沙哑带喘,夹着收音机底噪。我坐后排,手机亮着,还在刷最后一轮stress-ng + thermal cycle混跑的日志。司机忽然问:“师傅,你们搞手机的,是不是特怕死机?”我没答。他自顾说:“我闺女用你们那新款,说微信拍照糊得像隔层毛玻璃。”我说那是算法调得太激。他笑:“哦,那就是故意的。”我没纠正。其实不是故意的,是sensor driver初始化时忘了关掉某个legacy clock gating flag,而那个flag在上一版就被deprecated了,没人删——因为删了,某款旧指纹模组会认不出人。所以现在,它活在代码坟里,每天凌晨三点准时被wake up一次,只为了喂一口脉冲给那台早该进博物馆的传感器。这就叫优胜劣汰?淘掉的是靠谱的clock管理逻辑,留下的是一段靠迷信维系的僵尸时钟树。 组长今早来巡场,站我身后看了两分钟,忽然说:“把那个‘性能飞跃’的PRD打印出来,贴测试台左边。”我没动。他指指角落,“就那儿,贴歪点没事。”我扭头看见他工牌绳断了,金属扣硌着锁骨,印出红印。他说完就走了,没提bug rate,没提返工率,没提客户投诉量涨了三倍。他衬衫袖口磨出毛边,洗过太多次,领口绷着一道白痕。我盯着那道白痕想:这玩意儿,也快淘汰了吧? 所以今天我不跑full regression了。我要手动拆三台样机,把主控板抠下来,接逻辑分析仪,盯死那个reset pin的电平变化。不为找原因——原因早就写了三百七十二遍。就为看看,它到底是在哪一秒,把“跃”字咬碎了咽下去的。 (编辑:171手机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

