排行榜上的 Android 手机,以及把它们藏起来的那个 bug
这五周里随便哪天打开基准页,「按 Android 设备」那张表里只有一行:其他 Android。到那时,已经有几百台 Android 手机跑过基准。表上本该有 Samsung、Xiaomi、Pixel,还有其余的品牌。那是我们的 bug,今天起修好了。
哪里出了问题
手机浏览器不会告诉网站「Redmi Note 13 Pro」。它交出来的是型号代码,我们能用的只有这个。我们拿它去对一份匹配规则,只留下家族,比如 Galaxy A-series 或 Xiaomi / Redmi,代码本身不留。
这份列表过时的地方,正好是要紧的地方。Xiaomi 的代码以型号登记的年月开头,后面再跟五到七个字符。我们的规则指望前面是五位数字,再拖一条长尾巴。2312DRAABG 是一台 Redmi Note 13 Pro,第五位上的字母把匹配打断了。2201117TG 是一台 Redmi Note 11,太短。这两类加起来,大概盖住了当前 Xiaomi、Redmi 和 POCO 的一半。Honor 的代码,以及较新的 Huawei 代码,什么都对不上。2021 年以前的 OnePlus、iQOO、Lenovo 平板也一样。Galaxy S26 和 Pixel 10 没有自己的家族。这些全进了其他 Android。
第二个问题是算术。一个家族要有 30 次运行,表上才显示它,因为十几次运行得出的中位数晃得太厉害,排不出名次。几百次 Android 运行拆到 26 个家族上,就算标签是对的,也几乎没有谁够到 30。
改了什么
规则现在盖住上面说的全部手机。有两对共用一行,因为它们的代码长得一样,分不开。Huawei 和 Honor 用同一种格式。OPPO 和 OnePlus 也是,它们从 2021 年起用同一套 CPH 代码。这几行的名字里写了这一点。
表还会把家族向上归拢。满 30 次运行的家族仍然单独一行。不到的,并进品牌,于是十几台 Galaxy S24 和二十台 Galaxy A-series 会显示成 Samsung,而不是消失。A 系列一旦到 30,就重新单独占一行,品牌余下的变成 Samsung (其他)。一个品牌加起来还不到 30,就进其他 Android。每一次运行只计在恰好一行里。
有一件事修不了:已经存下的运行仍用当初的标签。我们从不保留型号代码,只留家族,没有东西可以拿来改标签。新的运行替换旧的,其他 Android 那一行会缩小。它不会一夜之间空掉。
Android 手机落在哪里
下面是今天早上基准页上的数字,迄今为止基准 2.5.0 的每一次运行。
| 组 | 运行 | 中位数 | 中间一半 |
|---|---|---|---|
| iPhone | 137 | 2,338 | 1,239 – 3,152 |
| Qualcomm Adreno | 177 | 1,357 | 834 – 2,901 |
| Samsung(所有机型) | 63 | 1,091 | 564 – 2,266 |
| Arm Mali | 130 | 826 | 455 – 1,674 |
顺序和你猜的一样,间距比你以为的大。一台典型的、用 Snapdragon 芯片的手机,分数是一台典型 Mali GPU 手机的 1.6 倍。这有一部分是价格的分界,不是芯片的分界。多数入门和中端 Android 手机跑的是带 Mali 图形的 MediaTek,Google 自家以外的多数旗舰跑的是 Snapdragon。一台典型 iPhone 是一台典型 Snapdragon 手机的 1.7 倍。Snapdragon 的跨度倒是很宽:这些手机里靠前的四分之一高于 2,901,稳稳地在典型 iPhone 前面。
Snapdragon 的中位数也掉下去很长一截。2.5.0 的头两周,数进去的 Snapdragon 手机有 39 台,中位数是 2,460。放到 177 次运行上,是 1,357。我们把它读成早期运行偏向旗舰。刚买了高端新机的人,最先想看看它能做什么。39 次运行的中位数是一个提示,更多数据进来以后,提示就是这个样子。
Snapdragon 和 iPhone 各赢不同的场景
总分藏着一道分界。基准有六个场景,手机不会在场景之间保持同一顺序。还是那两周:
| 场景 | 它靠什么 | Snapdragon 手机 | iPhones | Mali 手机 |
|---|---|---|---|---|
| 星云漂流 | GPU 粒子 | 6,291 | 2,796 | 1,067 |
| 液态金属 | 片元着色器 | 1,519 | 675 | 293 |
| 星陨瀑布 | CPU 物理 | 2,950 | 11,593 | 1,570 |
| Canvas 2D 基础圆形 | Canvas 2D | 3,143 | 6,343 | 2,139 |
一台典型的 Snapdragon 手机,在两个 GPU 场景里做的工作比 iPhone 的两倍还多。iPhone 在 CPU 物理场景上大约是四比一,在 2D canvas 场景上是二比一。那两周里,Snapdragon 和 iPhone 的总分落在几个百分点之内,一路上却几乎没有哪一项是一致的。如果一部手机主要用来玩游戏,GPU 那几行比总分更能说明它。
这些数字来自 39 台 Snapdragon 手机、51 台 iPhone 和 29 台 Mali 手机。够看出形状,还不够让人相信第三位数字。
Android 比较少干净地跑完
一次运行是完整的,是指每个场景都找到了手机能稳稳撑住的负载。过热降频,是指手机测得清楚,但热起来以后变慢了。那头两周的 Android 运行里,54% 以完整结束,29% 过热降频,17% 至少有一个场景测不出来。iPhone 有 78% 的次数以完整结束。
这里头大部分是热。手机没有风扇,三分钟满负载就够让它退让。如果你要的数字反映的是手机本身,而不是它热成了什么样,就插着电、放在凉的平面上、关掉其他应用再跑。结果如果回来是过热降频,等手机凉了再跑一次。
让你的手机上表
打开分享再跑一次基准,你的手机家族就加入计数。运行少的手机先出现在品牌下面,到了 30 次再作为自己的家族出现。一次运行我们存下什么,写在隐私页上:分数、各场景的结果、屏幕的数字,以及 GPU、浏览器和 Android 上手机的粗分类。基准页上没有比这更细的东西。