UH2S1L13——垃圾回收

Lua垃圾回收

垃圾回收的关键字是collectgarbage​,通过传入特定的字符串使用

本章代码关键字

1
2
3
collectgarbage()            --这个函数是垃圾收集器的通用接口。 通过参数 opt 它提供了一组不同的功能。
collectgarbage("count") --以K字节数为单位返回 Lua 使用的总内存数
collectgarbage("collect") --做一次完整的垃圾收集循环

获取内存占用

以 K 字节数为单位返回 Lua 使用的总内存数,用返回值*1024​,就可以得到具体的内存占用字节数

1
2
test = {id = 1, name = "123123"}
print(collectgarbage("count"))

进行垃圾回收

做一次完整的垃圾收集循环,将内存内未被变量引用的数据释放掉,类似于C#的GC

lua中,有自动定时进行GC的方法,但是在Unity中进行热更新开发,尽量不要使用自动垃圾回收

1
2
3
4
5
6
test = {id = 1, name = "123123"}
print(collectgarbage("count"))
test = nil
print(collectgarbage("count"))
collectgarbage("collect")
print(collectgarbage("count"))
1
2
3
20.2822265625
20.3115234375
19.1484375