lua-垃圾回收機制

--垃圾回收:採用了自動內存管理。 這意味着你不用操心新創建的對象需要的內存如何分配出來, 也不用考慮在對象不再被使用後怎樣釋放它們所佔用的內存。
--Lua 運行了一個垃圾收集器來收集所有死對象 (即在 Lua 中不可能再訪問到的對象)來完成自動內存管理的工作。 Lua 中所有用到的內存,如:字符串、表、用戶數據、函數、線程、 內部結構等,都服從自動管理。
--垃圾回收器函數
--collectgarbage("collect"): 做一次完整的垃圾收集循環。通過參數 opt 它提供了一組不同的功能
--collectgarbage("count"): 以 K 字節數爲單位返回 Lua 使用的總內存數。 這個值有小數部分,所以只需要乘上 1024 就能得到 Lua 使用的準確字節數(除非溢出)。
--collectgarbage("restart"): 重啓垃圾收集器的自動運行。
--collectgarbage("setpause"): 將 arg 設爲收集器的 間歇率。 返回 間歇率 的前一個值。
--collectgarbage("setstepmul"): 返回 步進倍率 的前一個值。
--collectgarbage("step"): 單步運行垃圾收集器。 步長"大小"由 arg 控制。 傳入 0 時,收集器步進(不可分割的)一步。 傳入非 0 值, 收集器收集相當於 Lua 分配這些多(K 字節)內存的工作。 如果收集器結束一個循環將返回 true--collectgarbage("stop"): 停止垃圾收集器的運行。 在調用重啓前,收集器只會因顯式的調用運行。

test = {"W","L","Q"}
print(collectgarbage("count"))

test = nil

print(collectgarbage("count"))

print(collectgarbage("collect"))

print(collectgarbage("count"))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章