toLua Framework之性能检测与优化

 

前言

toLua Framework是一款开源的Unity+toLua热更新框架,越来越多的游戏项目将其应用于热更新开发,但这样会形成了Lua+Mono双GC系统,而有的开发人员优化时往往只针对Mono层的优化而忽略Lua层的性能问题,或者没有类似于Unity Profiler这样高效直观的优化工具,又或者认为Lua拥有类似于C#的垃圾自动回收机制而不必优化。其实,Lua使用不规范也会造成灾难性的性能问题。

例图:Unity Profiler只能追踪到C#层与Lua层的交互代码块,而无法具体分析Lua层

 

性能问题

  • Lua层大量内存分配会导致频繁的LuaGC从而造成卡顿,这一点跟C#一样。
  • C#和Lua频繁地互相调用存在性能损耗。
  • Lua对象如果是全局变量会直接放在_G中,LuaGC无法清除。
  • Lua对象被一些全局的Table引用,LuaGC无法清除。
  • C#和Lua的互相引用,使用完未处理导致引用依然存在然后都GC不掉的情况,如Lua对象的function字段被赋值给了C#的事件/委托。
  • Lua层配置表内存占用过大。

参考资料:
https://www.jianshu.com/p/19f03570a117

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值