Lua 编程中垃圾回收是如何工作的?


Lua 提供了自动垃圾回收,这对于提供安全的内存管理非常有帮助。它的基本含义是你无需担心新创建的对象或如何分配内存。

Lua 主要运行垃圾回收器来收集所有废弃对象(即在 Lua 中无法访问的对象),以执行自动内存管理。

Lua 还为我们提供了可用于与垃圾回收器交互的不同函数,这些函数包括 -

  • collectgarbage ( "collect") - 返回一个数字,表示回收器是否执行完全的垃圾回收周期。
  • collectgarbage ( "count") - 返回 Lua 使用的内存总字节数。
  • collectgarbage ( "restart") - 重新启动垃圾回收器。
  • collectgarbage ( "stop") - 停止垃圾回收器。

现在,我们已经知道了 Lua 在垃圾回收器方面为我们提供哪些函数,接下来让我们探索一个简单的程序,其中我们将使用一些函数。

示例

请考虑以下所示的示例 -

 在线演示

fruits = {"apple", "orange", "banana"}
print(collectgarbage("count"))
fruits = nil
print(collectgarbage("count"))
print(collectgarbage("collect"))
print(collectgarbage("count"))

输出

32.4208984375
32.4580078125
0
25.3154296875

应当注意,输出可能有所不同,因为它完全取决于机器的内部架构。

更新于: 2021 年 7 月 20 日

271 次浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告