Memory leaks lua垃圾收集经验

Memory leaks lua垃圾收集经验,memory-leaks,lua,garbage-collection,Memory Leaks,Lua,Garbage Collection,我已经阅读了关于表的lua垃圾收集的“预期”行为的手册和在线帖子。问题是,是否有人在实际用例中有这样的经验。 我有一个表,随着时间的推移,我们不断地添加和删除(设置为NULL)条目。某些条目可能无法删除(由于各种原因-与此上下文无关)。在一段时间内,这些条目会发生什么变化?理想情况下,我希望将它们从表中清除(过时、垃圾收集等),这样内存占用就不会膨胀。 任何处理这个问题的实际例子都非常有用。Lua的垃圾收集器是其内存管理的一部分。它是一个增量垃圾收集器。它的目的是释放未使用的内存。它不时地收集根

我已经阅读了关于表的lua垃圾收集的“预期”行为的手册和在线帖子。问题是,是否有人在实际用例中有这样的经验。 我有一个表,随着时间的推移,我们不断地添加和删除(设置为NULL)条目。某些条目可能无法删除(由于各种原因-与此上下文无关)。在一段时间内,这些条目会发生什么变化?理想情况下,我希望将它们从表中清除(过时、垃圾收集等),这样内存占用就不会膨胀。
任何处理这个问题的实际例子都非常有用。

Lua的垃圾收集器是其内存管理的一部分。它是一个增量垃圾收集器。它的目的是释放未使用的内存。它不时地收集根集合中无法访问的所有内容,包括全局表、主线程和一些其他节点。因此,唯一的标准是Lua是否仍然能够通过任何一组引用访问内存

一旦设置了对该内存的最后一次引用nil,该内存可能会被垃圾收集

<>这与你上次使用一个值或自动清除你认为过时的东西无关。


如果要跟踪表元素的年龄,必须为每个元素存储一个时间戳,并在元素过时后自行删除该元素。

这些条目在一段时间内会发生什么情况?
它们将永远留在表中。您必须以某种方式手动删除它们(例如,实现“老化逻辑”)。您可能需要了解Lua中的弱表。