亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript 垃圾收集機制介紹理解

2019-11-20 22:43:10
字體:
來源:轉載
供稿:網友

經常使用 Javascript 的人會琢磨其垃圾收集機制,Javascript 并不像 C,C++ 那樣需要開發者手動去清除垃圾,在編寫 Javascript 程序是,開發者無需關心內存使用問題,所需內存分配以及無用內存(垃圾)的回收完全實現了自動管理。究其根源,主要是程序收集那些不再使用的變量,并且釋放其占用的內存。因此,垃圾收集機制會按照固定時間間隔,周期性反復的執行這一操作。


舉例來說,局部變量只存在于函數內部,程序會為局部變量在棧內存或堆內存中分配對應的存儲空間,當函數運行結束,局部變量所占用的內存就沒有存在的必要了,這時程序會釋放局部變量所占用的內存供其他變量使用。這是程序最簡單釋放內存的方法,但是很多時候,程序中變量會一直被使用,此時垃圾收集機制必須跟蹤變量并且判斷其是否被使用,是否可以釋放其內存空間。

垃圾收集機制主要判斷變量釋放內存空間的方法有兩個:其一是標記清除法,其二是引用計數法。

標記法,每個變量都有其運行環境,變量創建后會在某種環境中運行,比如創建一個局部變量,局部變量會運行在函數體內。當函數運行時,會標記局部變量為“進入環境”,當函數體運行結束后,意味著變量脫離了其運行環境,此時則將變量標記為“離開環境”。對于“離開環境”的變量,垃圾收集機制會進行相應記錄,并且在下一個回收周期時將其釋放。

引用計數法,跟蹤記錄每個值的被引用次數。聲明一個變量并將一個引用類型值賦給該變量時,這個值得引用次數就是 1。如果同一個值又被賦給另外一個變量,則該值的引用次數加 1。相反,如果包含對這個值的引用的變量又取得另外一個值,這個值得引用次數減 1。當這個值得引用次數為 0 時,則說明沒有辦法再訪問到此值,因此就可以將其占用的內存空間回收。當垃圾收集器在下一個周期運行時,會釋放引用次數為零的值所占用的內存空間。(原文解釋參考:Javascript 高級程序設計 - 第二版)

舉個例子來說:

復制代碼 代碼如下:

            function countMethod(){
                  var object1 = new Object(); // 聲明變量,計數器由 0 變為 1
                  var object2 = new Object(); // 聲明變量,計數器由 0 變為 1
                  object1.method1 = object2;  // object1 計數器 -1,object2 計數器 +1
                  object2.method2 = object1;  // object1 計數器 +1,object2 計數器 -1
            }

此函數運行退出后,object1 的計數器讀數為 1,object2 的計數器度數為 1。所以兩個變量都不會被銷毀。如果大量的這樣的程序存在于函數體內,就會導致大量的內存被浪費而無法回收,從而導致內存的泄露。

上述問題解決方法,手動釋放 object1 object2 所占用的內存。即:
復制代碼 代碼如下:

                 object1.method1 = null;
                 object2.method2 = null;

對比上面的例子,舉一個正常情況下的例子。
復制代碼 代碼如下:

            function countMethod(){
                  var object1 = new Object(); // 聲明變量,計數器由 0 變為 1
                  var object2 = new Object(); // 聲明變量,計數器由 0 變為 1
                  object1.method1 = "This is object1";  // object1 計數器 -1,object1 讀數變為0
                  object2.method2 = "This is object2";  // object2 計數器 -1,object2 讀數變為0
            }

通過上例看出,正常情況下,當函數運行結束后,object1 object2的讀數均為 0,在下一個垃圾收集周期時,會被回收并且釋放其所占用的內存。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线精品国产成人综合| 欧美一区二区三区精品电影| 国产精品专区第二| 日韩经典一区二区三区| 97国产在线视频| 成人av电影天堂| 亚洲视频自拍偷拍| 国产一区二区色| 蜜臀久久99精品久久久无需会员| 热门国产精品亚洲第一区在线| 久久精品国产亚洲精品| 国产伦精品一区二区三区精品视频| 国产精品视频xxx| 激情亚洲一区二区三区四区| 中文国产亚洲喷潮| 久热国产精品视频| 亚洲成人久久一区| 日韩高清av在线| 国内外成人免费激情在线视频网站| 狠狠操狠狠色综合网| 91精品国产自产在线观看永久| 亚洲视频在线观看网站| 疯狂做受xxxx高潮欧美日本| 午夜精品久久久久久久99黑人| 精品国产一区二区三区在线观看| 国产精品久久久| 欧美日韩亚洲视频一区| 成人午夜黄色影院| 亚洲性日韩精品一区二区| 欧美猛交免费看| 精品久久久久久亚洲国产300| 91中文字幕在线| 国产亚洲免费的视频看| 亚洲电影在线看| 国产成人精品亚洲精品| 亚洲色图18p| 亚洲精品日产aⅴ| 久久伊人色综合| 国产精品影片在线观看| 亚洲综合一区二区不卡| 国产专区欧美专区| 欧美一区二区三区四区在线| 日韩精品视频在线观看网址| 国产有码在线一区二区视频| 日韩欧美精品中文字幕| 久久国产加勒比精品无码| 亚洲国产日韩欧美在线图片| 欧美做爰性生交视频| 最近2019年好看中文字幕视频| 午夜精品福利电影| 青青草原成人在线视频| 欧美又大又硬又粗bbbbb| 久久影视电视剧免费网站| 欧美成aaa人片在线观看蜜臀| 亚洲男人天堂视频| 日韩国产在线看| 7777精品久久久久久| 国产欧美日韩高清| 精品综合久久久久久97| 精品国内自产拍在线观看| 亚洲国产高清福利视频| 久热精品视频在线免费观看| 日韩欧美在线一区| 97福利一区二区| 欧美精品在线免费观看| 国产精品啪视频| 久久久亚洲国产天美传媒修理工| 国产精品亚洲аv天堂网| 成人在线观看视频网站| 精品一区精品二区| 亚洲国产成人一区| 国产一区二区三区免费视频| 亚洲人成在线免费观看| 久久精彩免费视频| 粉嫩老牛aⅴ一区二区三区| 欧美在线中文字幕| 亚州精品天堂中文字幕| 91精品视频免费看| 欧美性猛交99久久久久99按摩| 青青草国产精品一区二区| 一区二区三区四区在线观看视频| 亚洲欧美另类中文字幕| 日韩小视频在线| 久久精品免费电影| 亚洲欧美资源在线| 国产精欧美一区二区三区| 欧美极品在线视频| 伊人久久久久久久久久| 亚洲电影免费观看高清完整版在线| 国产美女精品视频| 青青草原成人在线视频| 性色av一区二区三区在线观看| 久久中国妇女中文字幕| 国产精品成人va在线观看| 亚洲日韩第一页| 日韩av在线高清| 久热精品视频在线免费观看| 亚洲国产日韩一区| 免费不卡在线观看av| 亚洲黄页视频免费观看| 亚洲欧美日韩一区二区在线| 国产亚洲一级高清| 国产精品久久久久高潮| 日韩一区二区欧美| 欧美日韩国产黄| 亚洲精品乱码久久久久久金桔影视| 国产一区二区三区在线| 777777777亚洲妇女| 中文字幕最新精品| 亚洲精品自拍视频| 国产视频亚洲精品| 精品香蕉在线观看视频一| 亚洲色图欧美制服丝袜另类第一页| 国产欧美一区二区三区在线| 欧美激情免费视频| 亚洲欧洲一区二区三区久久| 欧美精品久久久久久久| 欧美自拍大量在线观看| 欧美成人精品一区| 国产精品久久97| 欧美高清不卡在线| 亚洲国产高潮在线观看| …久久精品99久久香蕉国产| 亚洲人成网站色ww在线| 另类少妇人与禽zozz0性伦| 国产国语刺激对白av不卡| 国产精品九九九| 97免费中文视频在线观看| 欧美午夜精品久久久久久人妖| 久久久久久久久久久久av| 激情成人中文字幕| 欧美激情一级欧美精品| 亚洲一区二区久久久久久久| 日本一欧美一欧美一亚洲视频| 欧美性猛交xxxx偷拍洗澡| 夜夜嗨av一区二区三区四区| 岛国视频午夜一区免费在线观看| 国产91ⅴ在线精品免费观看| 欧美在线性视频| 欧美大片第1页| 91精品久久久久久久久中文字幕| 黑人巨大精品欧美一区二区| 国产这里只有精品| 尤物九九久久国产精品的特点| 亚洲白拍色综合图区| 亚洲欧洲一区二区三区久久| 成人激情免费在线| 亚洲人成亚洲人成在线观看| 国产91在线播放精品91| 美女av一区二区三区| 精品久久久在线观看| 国产一区二区三区在线免费观看| 日韩在线观看精品| 亚洲国产精品电影在线观看| 成人激情春色网| 川上优av一区二区线观看| 亚洲美女av在线播放| 欧美性猛交xxxx富婆| 97成人精品区在线播放| 亚洲一区第一页| 欧美日本中文字幕| 日韩中文字幕视频在线观看| 亚洲一区二区三区毛片| 中文字幕在线看视频国产欧美|