Unity使用xlua读取lua数据表性能分析
Posted Unity3D游戏开发主程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity使用xlua读取lua数据表性能分析相关的知识,希望对你有一定的参考价值。
使用xlua读取lua策划数据表性能分析
使用的lua表
1
测试代码
Table对应数据Class
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游戏设计与实现-南梦宫》后台回复「设计」下载,
《3D数学基础:图形与游戏开发》后台回复「数学」下载
《游戏改变世界》后台回复回复「改变」下载
《Unity官方案例精讲》后台回复「案例」下载
更多资料、更多问题请后台详聊小新新。
注:baidu网盘文件总是被删,我重新生成了链接,你们试试,再不行给我后台留言吧,我也很无奈啊~~
Unity3D游戏开发主程,入门游戏开发必备!
↑↑长按二维码关注
点击阅读原文报名U3D免费课程
以上是关于Unity使用xlua读取lua数据表性能分析的主要内容,如果未能解决你的问题,请参考以下文章