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
应当注意,输出可能有所不同,因为它完全取决于机器的内部架构。
广告