2026-11-08 · 土拨鼠动态

土拨鼠 1.5.64:切会话从 1.2 秒降到 0.36 秒,我们动了哪里

这版的核心只有一句话:切换会话不该让你等。以前点开一个聊了两百多条的会话,要愣一秒多;现在冷切 0.36 秒、切回最近用过的会话 80 毫秒内。这篇把改法、以及改的过程中踩到的真问题一起摊开,你要是也在做长列表界面,可以直接抄。

一、卡的不是内存,是「每次都从头画一遍」

第一反应大家都一样:是不是内存不够、是不是数据太多?实测推翻了这两个猜测——同一台机器、同一份数据,只有切换动作慢,别的地方都快。

真正的原因很朴素:每次切会话,程序都把整段历史从头重画一遍。两百多条消息,一条条建节点、一个个插进页面,一次就 1.2 秒。你切十次,它就老老实实重画十次。

于是做了三件事:

效果是可量化的:冷切 1207 毫秒 → 358 毫秒;切回刚看过的会话 80 毫秒内,基本等于「瞬间」。

二、手机端三个真问题,这次一起收了

性能之外,这版还修了几处「用着用着就觉得不对」的地方,都是真用户反馈的:

顺手还加了点手感:鼠标停在会话列表某一行,那一行会像气泡一样鼓起来;点进去之后,新选中的那条再鼓一下——一眼就知道自己在看哪个。桌面版和手机版是同一套手感。

三、充值页说送 200、到账只有 150:一个数据源的教训

有用户对着充值页算了一遍:充 1000 应送 200,到账却只多了 150。查下来不是算错,而是「赠送规则」存在两份:页面各写一份表,账务服务另写一份,两边悄悄走偏了。

修法不是把页面的数字改对就完事,而是把两份并成一份,一律以实际入账为准——页面显示的就是账上真给的,以后再也不会各说各话。同时补了 2000 元档(送 500,到账 2500),六个面额卡自动排成两行三列,手机上不用横着滑。各档赠送比例见 定价页,那里和账务是同一份数据。

这条教训很通用:同一个事实只允许有一个源头。凡是「展示层各算一遍」的地方,早晚会分叉;分叉之后用户看到的就是「你说的和你做的不一样」。

四、这周学到的三条工程经验

这三条不在功能列表里,但它们决定了上面那些功能到底稳不稳。土拨鼠的长任务、读盘、多轮工具调用都跑在同一个底座上,底座稳了,你才敢把整件事交给它。想看你日常会用到哪些能力,翻 功能页;想先跑一件真事验证手感,直接 下载 装一个。

五、一句自查

如果你也在做长列表:先量一次「冷切换耗时」,再看它是不是随历史长度线性增长。是的话,问题八成不在服务端,而在「每次都重画一遍」——窗口化、整批插入、保存防抖,三招基本够用。

← 返回动态列表 · 回官网首页