Lua表格数据优化记录
2024/11
25
16:11
项目中使用了Unity+Lua,而策划表格数据使用的是一款开源的Excel转Lua的工具
https://github.com/zhangqi-ulua/XlsxToLua
这个转出来的数据,最大的问题在于 – 原始
一、内存
return {
[1001] = {
id = 100,
name = "name1",
items = {
[1]= {
itemid = 1,
itemnum = 2,
},
[2]= {
itemid = 1,
itemnum = 2,
},
},
},
[1002] = {
id = 102,
name = "name2",
items = {
[1]= {
itemid = 1,
itemnum = 2,
},
[2]= {
itemid = 1,
itemnum = 2,
},
},
},
}
大量的Key-Value结构,导致内存占用过高
二、易被修改
local items = require("items")
local item = items[1]
local itemId = item.id
item.id = 1002
策划表格数据为只读数据,不能随易修改数据
改造方案
行转列
return {
id = { 1001, 1002, 1003 ... },
name = { "name1", "name2" ... },
}
注意:这样需要一个读取器,进行转换,示例:
local line = Config.Get(1001)
print(line.id)
print(line.name)
改造后的数据对比
一共改造了11张表,运行时内存对比:
改造前主城界面Lua占用内存:72.1M
改造前主城界面Lua占用内存:54.9M
Lua中一个table占用了40个字节,并且当table中存储的不为原生数组后,其占用存储空间更大
所以要尽量少使用table,多使用原生数据
CopyRights: The Post by BY-NC-SA For Authorization,Original If Not Noted,Reprint Please Indicate From 老刘@开发笔记
Post Link: Lua表格数据优化记录
Post Link: Lua表格数据优化记录