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 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.