前端之家收集整理的这篇文章主要介绍了
垃圾收集 – 为什么Lua使用垃圾收集器而不是引用计数?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我自己听到并经历过:Lua的
垃圾收集器可能导致游戏中严重的FPS下降,因为它们的脚本部分增长。
这是我发现与垃圾收集器相关的,例如,每个Vector()用户数据对象暂时创建,直到收集垃圾。
我知道Python使用引用计数,这就是为什么它不需要像Luas GC这样的任何巨大的性能进行步骤。
>为什么Lua不使用引用计数来摆脱垃圾?
因为引用计数
垃圾收集器可以容易地泄漏物体。
简单的例子:双向列表。每个节点都有一个指向下一个节点的指针 – 并且本身指向下一个节点。如果您只是取消引用列表本身并且希望它被收集,您只是泄漏了整个列表 – 没有一个节点的引用计数为零,因此它们将保持对方的活动。使用引用计数垃圾收集器,每当您有循环对象时,您基本上都需要将其视为非托管对象,并在完成后自行明确处理。
请注意,除了引用计数之外,Python还使用了适当的垃圾回收器。
原文链接:https://www.f2er.com/lua/274671.html