當前位置:編程學習大全網 - 源碼下載 - lua 什麽時候釋放

lua 什麽時候釋放

Lua 提供了壹個自動的內存管理。 這就是說妳不需要關心創建新對象的分配內存操作,也不需要在這些對象不再需要時的主動釋放內存。 Lua 通過運行壹個垃圾收集器來自動管理內存,以此壹遍又壹遍的回收死掉的對象 (這是指 Lua 中不再訪問的到的對象)占用的內存。 Lua 中所有對象都被自動管理,包括: table, userdata、 函數、線程、和字符串。

Lua 實現了壹個增量標記清除的收集器。 它用兩個數字來控制垃圾收集周期: garbage-collector pause 和 garbage-collector step multiplier 。

garbage-collector pause 控制了收集器在開始壹個新的收集周期之前要等待多久。 隨著數字的增大就導致收集器工作工作的不那麽主動。 小於 1 的值意味著收集器在新的周期開始時不再等待。 當值為 2 的時候意味著在總使用內存數量達到原來的兩倍時再開啟新的周期。

step multiplier 控制了收集器相對內存分配的速度。 更大的數字將導致收集器工作的更主動的同時,也使每步收集的尺寸增加。 小於 1 的值會使收集器工作的非常慢,可能導致收集器永遠都結束不了當前周期。 缺省值為 2 ,這意味著收集器將以內存分配器的兩倍速運行。

妳可以通過在 C 中調用 lua_gc 或是在 Lua 中調用 collectgarbage 來改變這些數字。 兩者都接受百分比數值(因此傳入參數 100 意味著實際值 1 )。 通過這些函數,妳也可以直接控制收集器(例如,停止或是重啟)。

引用自:/2000/download/lua_manual.html

  • 上一篇:怎樣在MT4中添加雙線MACD?
  • 下一篇:新車飆車了看得出來嗎
  • copyright 2024編程學習大全網