下载 App
发布时间
发布时间
战士副本:火焰秘境已经开放测试!

战士副本:火焰秘境已经开放测试,暂无专属掉落,无门槛。[表情_送花][表情_送花]仅测试。

游戏卡顿

这个视频是客户提供的,解决了好几次,都没有解决好,还有一个问题就是,这个游戏没有接单上限,我感觉会不会和这个有关系,恳请各位大佬,指点和帮助一下

蜗牛大宝贝(XDXiaoWo):
这个是我以前总结的经验,看看对你有没有帮助。
卡顿根因分类与排查清单
零、一句话总纲
把每帧该做的事收敛到一个调度器:能降频降频、能脏标记脏标记、能分帧分帧、能池化池化、能差分差分;
唯独正确性路径(资源 flush、状态同步)不能省 —— 否则形成"低帧 → 跳过加载 → 资源永不就绪 → 帧率不回升"的自锁。
纯文字游戏没有 3D 压力测试,"看起来简单"最容易不做性能设计,卡顿藏得更深。
一、先定性:现象 → 方向(第一步不是看代码)
现象 优先怀疑 分类
一直低帧 每帧全量重建 / 遍历 A、B、E
越玩越卡 泄漏:定时器 / 订阅 / 句柄 F
操作时卡一下 同步大工作量 D、G
一顿一顿的规律掉帧 GC 压力 B、C
进场景卡死 资源同步加载 D、资源层
打字 / 滚动时卡 改布局属性做动画 + 每帧重设文本 A、B
首次卡、再次正常 同步加载 / 解码,资源没预热 D、资源层
高 DPI 手机特别卡 按物理分辨率渲染 渲染层
存读档时卡 频繁同步 IO G
先定性 → 再分层 → 后清单 → 单变量复验。
二、根因七分类
A. 每帧全量重建 UI:数据一变 RemoveAllChildren 全量重刷。症状:列表越长越卡。处方:虚拟化 + 签名差分。
B. 每帧字符串拼接 / 格式化:log = log .. x、每帧 string.format。症状:GC 抖动、长会话越玩越卡。处方:结果缓存,只在数据变化时重算。
C. 每帧建临时 table / 闭包 / 对象:for 里 {}、每帧 function() end。症状:规律性一顿一顿。处方:scratch 表复用、闭包提到模块级、对象池。
D. 一次性大工作量无分帧:同步解析整个剧本 / 几千条配置 / 读大文件。症状:进界面卡死几百毫秒~几秒。处方:分帧限额 + 异步 + 资源门。
E. 热路径全量遍历:背包 1000 格 / 词条 5000 条每帧 for 找东西。症状:数据越多越卡。处方:索引化、增量、视口裁剪、低频更新。
F. 定时器 / 订阅泄漏:Timer 起了不取消、每次进场景重复订阅。症状:越玩越卡、逻辑重复触发。处方:订阅返回取消函数,统一 cleanup。
G. 同步 IO / 日志刷屏:热路径 print、每帧写存档。症状:卡 + 日志疯狂滚动。处方:日志分级清理、存档节流/异步。
文字游戏特有:热路径正则/模式匹配(高亮、富文本解析);重复计算不缓存(数值面板每帧重算属性加成,其实只在装备变化时该算)。