lua 程序设计 面向对象 赋值后字段申请了新的空间

以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

改变自己
原文地址:https://www.cnblogs.com/sun-shadow/p/12992453.html