Lua/Mono堆栈终于能导出了,内存问题也能一起定位了
- 作者:admin
- /
- 时间:6小时前
- /
- 浏览:30 次
- /
- 分类:万象更新
最近跟不少项目组聊性能优化,大家都有个挺一致的感受:现在不缺数据,缺的是效率,真正折磨人的,是分析和问题流转这一段。
在Lua和Mono并存的项目里尤为明显。经常是一个卡顿点抓出来了,堆栈得来回切换着看,截图、拼图、整理文档,再丢给研发去复现。这一套流程走下来,经常比定位问题本身还费时间。
所以这次GOT Online更新,我们没急着增加什么宏大的新指标,而是围绕大家每天都在经历的工作流,重点做了两件事:让看堆栈更爽,让自动化更进一步。

1. Lua、Mono堆栈终于都支持导出了
对主程来说,堆栈是救命的代码依据;对QA来说,怎么把完整的堆栈“无损”传给研发,直接决定了下班时间。

这次我们正式支持了Lua堆栈和Mono堆栈的一键导出。不管是CPU热点函数,还是线上抓到的调用链,都能直接导成离线文件分享。研发拿到文件后,在本地就能直接看完整的调用拓扑,再也不用盯着几张高糊截图一层层去人肉展开节点了。
而且,导出的文件格式对团队内部的AI Agent或分析工具非常友好,可以直接喂给大模型去帮你自动抓耗时瓶颈,把费眼睛的活儿交给AI。
针对Mono堆栈,我们还顺手补了几个高频需求:支持正序/倒序Top10调用链导出,并且开放了OpenAPI,你可以直接把它塞进你们的自动化流水线或内部平台里,实现持续集成式的性能分析能力。
2. 2D物理模块分析能力补齐
在很多项目里,物理系统往往是“隐性开销区”,尤其是2D或小游戏项目,Dynamic Body、Kinematic Body等对象数量一旦上来,性能问题并不会立刻爆发,而是体现在整体帧耗逐步抬升,但又很难直接定位到物理层。

这次新增的统计能力,把这部分开销单独拆了出来,包括Dynamic Body、Kinematic Body等关键类型的运行情况,都可以在报告中直接看到。
这样做的好处是很直接的,以前是“感觉物理有点重”,现在可以明确知道——到底是动态刚体过多,还是运动体更新频繁,甚至可以进一步反推是哪一类玩法或系统在持续制造负担。
对于2D或轻量级项目来说,这一块补齐之后,整个性能分析链路会更完整,也更容易把“非渲染类卡顿”单独拎出来处理。
3. 新增Animator/粒子系统趋势统计
在实际项目里,Animator和粒子系统通常是最容易被忽略的性能来源。它们的问题不会突然爆发,而是随着运行时间慢慢累积,最后表现为整体性能持续变差。

这次新增Animator资源统计,重点就是把“隐性消耗”拉出来看清楚。很多时候问题不在动画本身,而在用法:UI反复生成不释放、Animator空转、状态机频繁切换,都会悄悄把开销抬高。真正需要关注的,其实不是“有没有在播”,而是Animator实例是否持续增长,以及是否存在持续更新却没有实际效果的情况。

粒子系统也是一样,这次新增Playing状态趋势,就是为了抓“越跑越多”的情况。有些问题不会在某一帧出现,而是粒子没停、反复叠加、回收跟不上触发,时间一长就会持续拉高性能开销。关键不在峰值,而在曲线能不能回落,回不去,基本就不是单点问题了。
4. Lua分析能力扩展到鸿蒙平台

随着做鸿蒙项目的团队越来越多,这次我们把鸿蒙平台的Lua性能分析能力也补齐了。现在已经支持鸿蒙端的Lua耗时和Lua内存数据采集。Android、iOS、鸿蒙三端齐活,跨平台测试时一套流程跑天下,不用再折腾不同的工具链。
5. Release调试能力再往前一步
以前最让人抓狂的是什么?Bug线上跑得欢,切到Debug连个影都抓不到,定位全靠“玄学”和“瞎猜”。

兄弟们,以后不用这么痛苦了。现在Release包直接支持自定义代码段和变量采集了!意思就是:你不用为了排查个问题倒回去重打Debug包、冒着“问题消失”的风险去折腾。就地在Release环境下,你想看哪个函数的耗时(比如关卡加载、技能释放),想捞哪个模块的状态机或者关键开关,甚至想数一数某条路径被触发了多少次,直接在线上就能抓!
既保住了最真实的性能环境,又把底牌摸得清清楚楚,这才是属于咱开发者的“纯天然、无污染”第一手数据。
6. 顺手改了几个每天都用得着的小细节
除了几个重点能力,这次还补了一些日常分析中使用频率较高的优化。

- 自定义函数:加了“调用次数曲线”,一眼就能看出哪些函数调用次数突然增多;

- 网络分析:加了上传/下载消息包统计,网络卡顿到底是包太大还是发太多,数据说了算;

- Low Memory:新增了Low Memory事件捕获与统计,不仅可以快速定位告警发生时的帧号,还支持通过MCP获取触发次数,方便团队快速统计各场景的内存压力情况。
比起继续增加更多性能指标,我们这次更想解决的是大家在实际工作流里的卡顿感。
从堆栈导出、支持鸿蒙,到Release环境下可观测能力的增强...我们希望GOT Online不仅是一个“体检仪”,更能变成一个帮你把问题快速流转、快速干掉的“催办助手”。
如果你已经在使用GOT Online,不妨体验一下这些新能力;如果还有更多希望支持的分析场景,也欢迎继续和我们交流,我们会持续把来自一线项目的需求,转化为下一次更新中的能力。
最后说两句:
工具的价值,不仅在于它能算得多快,更在于它能不能真的融入团队的日常流转中,帮大家准时下班。
我们深知,在项目期引入或者尝试一个新工具是有成本的。为了让大家能毫无负担地验证这波更新的疗效,我们特别开放了「两周GOT Online免费试用通道」,并且会提供专属的性能专家诊断名额。
不管你们现在卡在什么性能瓶颈上,联系我们的商务同学,UWA的技术专家会一对一陪着你们跑通测试,直击问题。
关于UWA
UWA是一家创业十年的高新技术企业,作为游戏行业的深耕者,UWA始终专注于为使用Unity、Unreal引擎的开发者提供丰富的优化产品,帮助开发者高效解决开发问题、定位性能瓶颈、提供解决方案,已支持超过一万款游戏项目。还打造了技术博客、问答、开源库、学堂等社区产品,为开发者提供便利和高效的支持。线上培训和线下教育的新业务,满足行业对人才培育的需求。

