最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單講解Lua中的垃圾回收機制

 更新時間:2015年05月29日 11:26:15   投稿:goldensun  
這篇文章主要介紹了Lua中的垃圾回收機制,自動的垃圾回收是Lua的重要特性之一,需要的朋友可以參考下

 Lua使用基于被內(nèi)置在Lua某些算法的垃圾收集自動內(nèi)存管理??梢宰詣觾?nèi)存管理的結(jié)果,作為一個開發(fā)者:

  •     沒有必要擔(dān)心的對象分配內(nèi)存。
  •     無需釋放他們時,不再需要可將其設(shè)置為nil。

Lua使用運行不時收集死的對象時,不再從Lua程序中訪問垃圾收集器。

所有對象,包括表,用戶數(shù)據(jù),函數(shù),線程,字符串等受自動內(nèi)存管理。 Lua使用增量標(biāo)記和使用兩個數(shù)字來控制其垃圾回收周期即垃圾收集暫停和垃圾收集器的步驟事半功倍清除收集器。這些值是在百分比和100的值是常等于1。
垃圾收集暫停

垃圾收集停頓被用于控制多長時間的垃圾收集器需要等待,之前;它是由Lua的自動內(nèi)存管理再次調(diào)用。數(shù)值低于100就意味著Lua中不會等待下一個周期。此值的類似地較高的值將導(dǎo)致垃圾收集器是緩慢的并且性質(zhì)上較不積極。200表示該集合等待的總內(nèi)存在使用中要開始一個新的周期開始前的兩倍。因此,根據(jù)不同的性質(zhì)和應(yīng)用的速度,有可能要求改變該值來獲得在Lua應(yīng)用的最佳性能。
垃圾收集器的步驟事半功倍

這一步乘數(shù)控制垃圾收集在Lua程序的內(nèi)存分配的相對速度。較大的步長值將導(dǎo)致垃圾收集器要更侵蝕性,同時也提高了垃圾收集的每個增量步的步長大小。值小于100可能經(jīng)常導(dǎo)致避免垃圾收集器沒有完成其周期和其一般不是優(yōu)選的。默認(rèn)值是200,這意味著垃圾收集器運行的兩倍的內(nèi)存分配的速度。
垃圾收集器函數(shù)

作為開發(fā)人員,我們確實有過讓Lua自動內(nèi)存管理。為此,有以下幾種方法。

  •     collectgarbage("collect"): 執(zhí)行垃圾回收的一個完整周期。
  •     collectgarbage("count"): 返回當(dāng)前使用的千字節(jié)的程序內(nèi)存量
  •     collectgarbage("restart"): 如果垃圾收集器已經(jīng)停止,將重新啟動它。
  •     collectgarbage("setpause"): 設(shè)置給定為第二參數(shù)除以100至垃圾收集器暫停變量的值。它的用途是作為討論的一點上面。
  •     collectgarbage("setstepmul"): 設(shè)置給定為第二參數(shù)除以100到垃圾步驟乘數(shù)的變量的值。它的用途是作為討論的一點上面。
  •     collectgarbage("step"): 運行垃圾回收的一步。第二個參數(shù)是越大step也會變大。在收集的垃圾將返回true,如果觸發(fā)的步驟是一個垃圾收集周期的最后一步。
  •     collectgarbage("stop"): 停止垃圾收集器,如果它的運行。

使用垃圾收集器例如一個簡單的例子如下所示。

復(fù)制代碼 代碼如下:
mytable = {"apple", "orange", "banana"}

print(collectgarbage("count"))

mytable = nil

print(collectgarbage("count"))

print(collectgarbage("collect"))

print(collectgarbage("count"))

當(dāng)我們運行上面的程序,會得到下面的輸出。請注意,這樣的結(jié)果會有所不同,由于在操作系統(tǒng)中,Lua自動內(nèi)存管理功能可能也有差異。

復(fù)制代碼 代碼如下:
20.9560546875
20.9853515625
0
19.4111328125

可以在上面的程序看出,一旦垃圾回收完成后,既可以減少使用內(nèi)存。但是它也不是強制性的調(diào)用。即使我們不給調(diào)用,它也會自動在后一階段在預(yù)定時間之后由Lua解釋器執(zhí)行。

顯然我們可以改變,如果需要使用垃圾收集器的這些功能行為。這些功能提供了一點額外的能力,為開發(fā)者處理復(fù)雜情況。根據(jù)不同的內(nèi)存需要執(zhí)行程序類型,可能會或可能不會使用此功能。但在應(yīng)用程序的內(nèi)存使用情況,并在程序本身,以避免在部署后不想要對結(jié)果進行檢查。

相關(guān)文章

  • Lua中訪問table里函數(shù)的方法示例

    Lua中訪問table里函數(shù)的方法示例

    這篇文章主要介紹了Lua中訪問table里函數(shù)的方法示例,本文例子超級簡單,算是入門實例吧,其實只需要表名.方法名即可訪問,重要的還是其它代碼寫法,本文給出了一個完整的代碼示例,需要的朋友可以參考下
    2015-04-04
  • Lua數(shù)據(jù)類型介紹

    Lua數(shù)據(jù)類型介紹

    這篇文章主要介紹了Lua數(shù)據(jù)類型介紹,本文講解了Lua中的nil(空)、boolean(布爾)、number(數(shù)字)、string(字符串)、table(表)、function(函數(shù))、thread(線程)、userdata(自定義類型)等數(shù)據(jù)類型,需要的朋友可以參考下
    2014-12-12
  • 讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    這篇文章主要介紹了讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅),本文講解的是一種讓代碼更加清晰、簡練、明確、優(yōu)雅的書寫方法,需要的朋友可以參考下
    2014-10-10
  • 分析Lua觀察者模式最佳實踐之構(gòu)建事件分發(fā)系統(tǒng)

    分析Lua觀察者模式最佳實踐之構(gòu)建事件分發(fā)系統(tǒng)

    當(dāng)對象間存在一對多關(guān)系時,則使用觀察者模式(Observer Pattern)。比如,當(dāng)一個對象被修改時,則會自動通知依賴它的對象。觀察者模式屬于行為型模式
    2021-06-06
  • Lua判斷數(shù)據(jù)類型的方法

    Lua判斷數(shù)據(jù)類型的方法

    這篇文章主要介紹了Lua判斷數(shù)據(jù)類型的方法,本文講解了判斷數(shù)據(jù)類型的方法和Lua腳本語言的8種基本數(shù)據(jù)類型,需要的朋友可以參考下
    2015-04-04
  • Openresty服務(wù)器使用lua腳本寫的Hello World簡單實例

    Openresty服務(wù)器使用lua腳本寫的Hello World簡單實例

    這篇文章主要介紹了Openresty服務(wù)器使用lua腳本寫的Hello World簡單實例,OpenResty (也稱為 ngx_openresty)是一個全功能的 Web 應(yīng)用服務(wù)器。它打包了標(biāo)準(zhǔn)的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數(shù)依賴項,需要的朋友可以參考下
    2015-04-04
  • Lua教程之弱引用table

    Lua教程之弱引用table

    這篇文章主要介紹了Lua教程之弱引用table,本文講解了自動內(nèi)存管理的缺陷、弱引用table、三種形式的弱引用等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua中pairs與ipairs的區(qū)別總結(jié)

    Lua中pairs與ipairs的區(qū)別總結(jié)

    這篇文章主要給大家介紹了關(guān)于Lua中pairs與ipairs區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 簡單講解Lua中的垃圾回收機制

    簡單講解Lua中的垃圾回收機制

    這篇文章主要介紹了Lua中的垃圾回收機制,自動的垃圾回收是Lua的重要特性之一,需要的朋友可以參考下
    2015-05-05
  • Lua面向?qū)ο笾嘀乩^承、私密性詳解

    Lua面向?qū)ο笾嘀乩^承、私密性詳解

    這篇文章主要介紹了Lua面向?qū)ο笾嘀乩^承、私密性詳解,本文講解了多重繼承之在多個類中查找一個字段、多重繼承之創(chuàng)建繼承多個類的子類、類的私密性等內(nèi)容,需要的朋友可以參考下
    2014-09-09

最新評論

绥德县| 呼图壁县| 南康市| 丰宁| 酒泉市| 澄江县| 咸丰县| 驻马店市| 福州市| 太原市| 鲁山县| 灵台县| 饶平县| 洪洞县| 闽清县| 宁乡县| 河北省| 灌阳县| 紫阳县| 柏乡县| 东平县| 青神县| 宣武区| 东阿县| 来宾市| 嘉峪关市| 岢岚县| 长海县| 昌图县| 宝清县| 博罗县| 邛崃市| 石嘴山市| 北川| 军事| 建昌县| 保定市| 芷江| 大厂| 修文县| 衡阳市|