9.垃圾回收

image

常用API

  • 类似于C#的GC
  • Unity中热更新开发 尽量不要去用自动垃圾回收
print("**********垃圾回收************")

test = {id = 1, name = "123123"}
--垃圾回收关键字
--collectgarbage
--获取当前lua占用内存数 K字节 用返回值*1024 就可以得到具体的内存占用字节数
print(collectgarbage("count"))
--lua中的机制和C#中垃圾回收机制很类似 解除引用 就是变垃圾
test = nil
--进行垃圾回收 理解有点像C#的 GC
collectgarbage("collect")

print(collectgarbage("count"))

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

输出

**********垃圾回收************
20.609375
19.4365234375
[Finished in 78ms]

垃圾回收机制

类似于C#的GC

Lua垃圾回收机制摘要:

  1. Lua采用类似C#的自动垃圾回收机制,通过解除引用来标记可回收对象
  2. 主要使用collectgarbage函数控制垃圾回收:

    • "count"参数可获取当前内存占用(KB)
    • "collect"参数执行主动垃圾回收
  3. 在Unity热更新开发中建议避免使用自动垃圾回收,推荐手动控制
  4. 示例演示了对象引用解除后内存变化及主动回收效果
最后修改:2025 年 06 月 05 日
如果觉得我的文章对你有用,请随意赞赏