TapTap 制造icon
TapTap 制造
发布时间
天一
点击「新建会话」即可同一个项目可以有多个对话,项目的开发进度是不受影响的
天一
我先把最危险的几处直接点名:scripts/network/ServerProjectile.lua这里是总热点。UpdateProjectiles(dt) 每帧 GetChildren() 后全量遍历所有弹幕;而弹幕本身是 CreateChild("Proj", REPLICATED) 创建的复制节点。问题不只是弹幕多,而是“持续创建/销毁 + 持续同步”。即便现在有 MAX_SERVER_PROJS = 50,高峰时也会不断触发“超限 -> 找最老节点 -> Dispose”,吞吐还是很高。scripts/network/ServerCombatProjectiles.lua这里是主要的产弹幕器,而且有几段会放大得很厉害:splitCount or 4 的散射追踪火球多处 for si = 1, shotCount do同时混用了 SpawnProjectile(...) 和 DelayedProjectile(...)也就是说,一个技能释放不一定是一颗弹,而可能是一串、多段、延迟再补几发。这个文件里 657/663/682/755/823/830/839 附近都值得优先盯。scripts/network/ServerSummon.lua这块不是“最多”,但很容易形成持续负载。两处最危险:s.syncTimer >= SYNC_FULL_INTERVAL,而 SYNC_FULL_INTERVAL = 0.20s._nodeRebuildTimer >= 3.0 后会 CreateChild("Summon", REPLICATED) 再 oldNode:Dispose()也就是召唤物一边 0.2 秒高频同步,一边还有 3 秒后自动重建节点的逻辑。场上召唤物一多,这个复制层压力会很明显。scripts/network/ServerBossAI.luaBoss 这边主要不是“单次很重”,而是会不断叠持续效果:FireProjectile(...) 最终也是走 ServerProjectile.SpawnProjectile(...)ai._pendingAoE 会不断挂延迟 AoEai.fieldEffect 会对地图内所有玩家持续 DoTmultiDash 会反复冲刺 + AoE所以如果这个项目刚好有 Boss 战、弹幕战或者持续场地技能,CPU 会很容易稳定在高位。如果要我按“最可能先砍了就见效”排序:第一刀砍 ServerCombatProjectiles.lua 里的多段产弹幕技能。第二刀砍 ServerSummon.lua 的 0.2s 高频同步和 3 秒自动重建。第三刀看 Boss 的持续 AoE / 多段冲刺 / 弹幕组合。再说直白一点:这项目不像单纯内存泄漏,更像服务端战斗系统在持续制造复制节点和高频更新,CPU 先被打满,内存/GC 再跟着抖上去。具体你自己分析下
扇子
我也是双端,但我强烈建议你优先手机端,因为taptap用户手机端是最多的。告诉塔拉拉你觉得手机端不适合,他就会自动锁住,手机和电脑你还是需要二选一,因为兼顾太难了