10 月 27 日 22:40,第三次清缓存后首页仍然慢了 1.8 秒
我用手机秒表记了九次加载,中位数从 1.2 秒爬到 3.0 秒。清缓存的当天回落,第二天又回去了。
这一周我只做了一件事:弄清「任天堂switch2入口浏览器」这条路径到底通向哪里,以及它为什么总是在第三次打开时变慢。下面的答案很少,问题很多。
每张卡片是一条我真实记录下来的观察,编号不代表重要性。有些只是半句话,但它们共同指向同一个没解决的问题:入口之后的那个「浏览器」到底是谁在替我们做决定。
我用手机秒表记了九次加载,中位数从 1.2 秒爬到 3.0 秒。清缓存的当天回落,第二天又回去了。
他说那时候的入口是「开机就是」,不需要考虑浏览器。我把那张卡的照片夹进了笔记本第 37 页。
三者共用同一份会话,但缓存分区不一致。这是我这周最在意的一个裂缝。
有人指首页,有人指内嵌网页视图,有人指商店页,还有人干脆指网络设置界面。
最快的 0.9 秒出现在周二早上七点,最慢的 4.4 秒出现在周四夜里十一点多。差值太整齐了,反而可疑。
书里 2011 年的结论放到今天的游戏机首页上,居然还成立。这点让我有点沮丧。
同一套网络条件下,网页视图和内嵌播放器的时间差是 2.3 秒,原因我还没查清。
他做嵌入式十年,我问他缓存分区的事,他回了我这一句,然后发来一张示意图。
其中 6 个是统计用途,3 个和内容加载完全无关,剩下 32 个里有 11 个带版本号参数。
不是同一件事,但索引策略的逻辑几乎可以套用。我打算下周做个横向对照表。
基础设施的「入口」永远藏在你看不见的第二层,看得见的只是它想让你看见的那一层。
它先出骨架再填内容,缓存放得极浅。也许这也是一种答案,只是我不太喜欢。
我把那台机器放在茶几上,屏幕朝下,因为不想再看它跳出来的那一行转圈动画。10 月 27 日晚上十点四十,我在客厅把 Switch 2 从底座上拔下来,第三次清掉它的首页缓存,然后打开秒表,记下第三次加载的用时:1.8 秒,比前一天同一时刻慢了 0.6 秒。这个数字本身不重要,重要的是它为什么每次都出现在「第三次」。
九次测量,六十三天里我记了整整一页。
接下来的几天我做的事情很笨:先排除网络,用同一个路由器在手机上跑同样的入口,中位数是 0.7 秒,说明链路不是瓶颈;再排除账号,用一个刚注册的临时账号登录,加载时间反而比主账号稳定;最后只剩下缓存分区这一层,而这一层恰恰是任天堂从来不对外解释的部分。我翻完了手边能找到的资料,包括那本 2011 年的《The Web Application Hacker's Handbook》,第 12 章关于客户端缓存的讨论里有一句话让我停了很久——「缓存的失效策略往往暴露服务端对用户行为的假设」。换句话说,入口慢不是因为机器笨,是因为它在猜我接下来要做什么,而且猜得不准。
说实话,我认为「任天堂switch2入口浏览器」这个说法,被讨论得太多,被定义得太少。绝大多数把它挂在嘴边的人,指的其实是首页推荐位;少数人指的是那个藏在设置菜单深处、只在特定操作下才会被唤起的网页视图;还有人在论坛里把它和商店页面混为一谈。这四种东西在技术上是完全不同的对象,共享同一个名字,然后大家一起抱怨它慢——这种抱怨是没有意义的,因为你连抱怨的对象都没确定。这是我今年写过最不讨喜的一句话,但我不打算收回。
为了把这件事说清楚,我把它拆成了三个可观测的对象:其一,开机后自动呈现的推荐面板,它读取的是缓存的首页快照;其二,掌机模式下从某个图标进入的内嵌页面,它走的是一次完整的会话初始化;其三,系统设置里的网络相关页面,它是唯一一个明确告诉你「正在连接」的地方。三者的加载曲线完全不同,而我在路由器日志里抓到的那 41 个请求域名,只有 9 个是三者共用的。剩下 32 个各管各的,其中 11 个带着版本号参数,这意味着每次版本更新,缓存都要重建一次——这大概就是「第三次变慢」的一种解释,虽然我还没有证据把它坐实。
顺便说,老陈那句「你就当它是个黑盒,别拆」,我现在有点同意,也有点不同意。
我把这四个问题抄在了笔记本第 38 页,旁边贴着田中那张 2013 年的 Wii U 说明卡照片。那张卡上写着「开机即游玩」,一共五个字,没有提到任何浏览器。十三年过去,入口这件事被拆成了几十层,其中大部分我们看不见,也很少有人愿意承认自己看不见。我不打算在这一篇里给出结论,因为结论还没有出现。我打算下周继续测,把 63 条记录补到 126 条,然后看看那条曲线会不会自己说话。
我叫江晚,做前端性能相关的工作,白天写代码,晚上写笔记,两边都不太满意。
这个站是我从 2023 年开始记的,起初只是把 Switch 上遇到的加载问题记在本子里,后来本子满了,就搬到这里。我习惯先测量再说话,所以每篇笔记里都有一堆数字,读起来可能有点干。
我做这个站,是因为搜「任天堂switch2入口浏览器」的时候,能找到的内容几乎全是复读同一段话,没有人真的打开秒表。我想补上这个空缺,哪怕补得很慢。
我不接推广,也不做评测,只记录我自己那台机器上发生的事。
「入口不是门,是让你以为门在别处的那面墙。」—— 老陈,10 月 25 日晚上在微信里发的原话,我原样抄下来了