以C++方式去思考 子类也有自己的变量存储了。 不难理解
相当于,给
testCC申请了新的数据字段,
从打印看出,在调用add函数后,testCC新增了32bit的空间。
参考: https://blog.csdn.net/twwk120120/article/details/84875813 lua内存的大小计算
代码:
1 local function getMem() 2 return collectgarbage("count") 3 end 4 collectgarbage("stop") 5 --local before = getMem() 6 --local a = {} 7 --local after = getMem() 8 -- 9 --print((after - before)*1024) 10 Account = {value = 0 } 11 function Account:new(o) 12 o = o or {} 13 setmetatable(o, self) 14 self.__index = self 15 return o 16 end 17 18 function Account:add(v) 19 self.value = self.value + v 20 end 21 collectgarbage("stop") 22 local size1 = getMem() 23 testCC = Account:new() 24 local size2 = getMem() 25 testCC:add(1) 26 local size3 =getMem() 27 28 print((size2-size1)*1024) 29 print((size3-size1)*1024)
lua.exe D:/untitled/src/test.lua
32
64