Unity使用xlua读取lua数据表性能分析

Posted Unity3D游戏开发主程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity使用xlua读取lua数据表性能分析相关的知识,希望对你有一定的参考价值。

使用xlua读取lua策划数据表性能分析

使用的lua表

Unity使用xlua读取lua数据表性能分析

1


Unity使用xlua读取lua数据表性能分析

Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析


试代码


Unity使用xlua读取lua数据表性能分析

Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析


Table对应数据Class


Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析Unity使用xlua读取lua数据表性能分析

Unity使用xlua读取lua数据表性能分析

2


1.第一次DoString开销比较大,主要在File的操作。解决方案:所有lua文件做成大文件,File的open操作打开一次,持有句柄。(test===1)


2.重复Get已经DoString的表仍然有1K的GC,主要在LuaTable.Get操作里。解决方案:在LuaDataInfo里有个Marshal,用来序列化数据,并且能保证只Get一次表。每个表有一个static的表名和LuaTable对表的引用。(test===2)


3.重复获取同一个index的子表,GC开销较大,主要在Activator.CreateInstance里。解决方案:缓存已经读取的子表,每次先从字典里查找,找到直接返回,找不到再走整个读取流程(test===4~8)


4.返回缓存的子表,GC仍然不可忽略,60B。由于我使用的是type的name做key,所以会有一个字符串60B的开销,后面直接用type做key,可以省略这部分开销,但是时间略有消耗


3


优化点:


1.分表,将大的数据表分成多个

2.读取表的时候,按字段读取,而不是一次性解析整条数据
3.预加载一些道具、活动、任务表
4.注意缓存表的内存占用
5.注意lua堆栈

Unity使用xlua读取lua数据表性能分析

行业如此火爆,高薪不是梦想。

学习游戏开发,进入高薪行业!

点击「阅读原文」报名免费课程

号主说

  • 《Unity游戏设计与实现-南梦宫》后台回复「设计」下载,

  • 《3D数学基础:图形与游戏开发》后台回复「数学」下载

  • 《游戏改变世界》后台回复回复「改变」下载

  • 《Unity官方案例精讲》后台回复「案例」下载

    更多资料、更多问题请后台详聊小新新。


注:baidu网盘文件总是被删,我重新生成了链接,你们试试,再不行给我后台留言吧,我也很无奈啊~~

Unity3D游戏开发主程,入门游戏开发必备!

↑↑长按二维码关注

点击阅读原文报名U3D免费课程

以上是关于Unity使用xlua读取lua数据表性能分析的主要内容,如果未能解决你的问题,请参考以下文章

xluatolua性能对比

Unity中C#与Lua的交互

[Unity XLua]热更新XLua入门-俄罗斯方块实例篇

Unity 使用xLua遇到的坑

Unity使用Xlua框架热更

unity发布安卓lua路径不存在问题