垃圾收集 – 为什么Lua使用垃圾收集器而不是引用计数?

我自己听到并经历过:Lua的垃圾收集器可能导致游戏中严重的FPS下降,因为它们的脚本部分增长。

这是我发现与垃圾收集器相关的,例如,每个Vector()用户数据对象暂时创建,直到收集垃圾

我知道Python使用引用计数,这就是为什么它不需要像Luas GC这样的任何巨大的性能进行步骤。

>为什么Lua不使用引用计数来摆脱垃圾

解决方法

因为引用计数垃圾收集器可以容易地泄漏物体。

简单的例子:双向列表。每个节点都有一个指向下一个节点的指针 – 并且本身指向下一个节点。如果您只是取消引用列表本身并且希望它被收集,您只是泄漏了整个列表 – 没有一个节点的引用计数为零,因此它们将保持对方的活动。使用引用计数垃圾收集器,每当您有循环对象时,您基本上都需要将其视为非托管对象,并在完成后自行明确处理。

请注意,除了引用计数之外,Python还使用了适当的垃圾回收器。

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...