将垃圾回收整理成表格

我正在思考将垃圾回收的所有内容整理到一个表格中以便筛选。

function CollectGarbageCollection()
  return collectgarbage();
end

for i,v in next, CollectGarbageCollection() do
    print(i,v) -- 来自垃圾回收的数据
end

上面的代码只是一个示例。

点赞
用户4984564
用户4984564

你不能这样做。垃圾回收的整个意义在于收集后,对象就被删除了。你可以在你自己的对象中添加一个元方法,当它们被垃圾回收时会触发,但仅此而已。


编辑:技术上说,你可以构建一个带有一些钩子的修补版 Lua,这些钩子在每次对象被收集之前触发其 __gc 元方法,但这需要大量的工作。

2020-02-17 07:30:25