JavaScript具有自動垃圾收集機制,也就是說,執行環境會負責管理代碼執行程序中使用的記憶體,開發人員不必關心記憶體分配和回收問題,
垃圾收集機制的原理:找到不再繼續使用的變數,然后進行釋放其占用的記憶體,所以,垃圾收集器會按照固定的時間間隔(或代碼執行中設定的收集時間)持續執行這一操作,
垃圾收集器會跟蹤哪些變數有用哪些變數沒用,對沒用的變數打上標簽,以便回收其使用的記憶體,具體到瀏覽器的實作,常用的垃圾回識訓制有兩個策略,
1、標記清除
標記清除是最常用的垃圾收集方式,其思想是對當前不使用的變數加上標記然后回收其記憶體,當變數進入環境是,這個變數就會被標記為“進入環境”,當變數離開環境時,這個變數就會被標記為“離開環境”,
垃圾收集器在運行時會給存盤在記憶體中的所有變數加上標記,然后垃圾收集器會去掉環境中的變數和被環境中的變數參考的變數的標記,在此之后如果有被標記的變數則是準備洗掉的變數,原因是環境中的變數是無法訪問他們了,最后垃圾收集器會完成清除,會銷毀帶有標記的值并回收值占用的記憶體,
2、參考計數
參考計數的含義是跟蹤記錄每個值被參考的次數,
當宣告了一個變數,并將值賦為參考型別,則此值的參考次數就位1,如果又將這一個值賦給另一個變數,則該值的參考次數就加1,反之,如果參考此值的變數被賦了另外一個值,則此值的參考次數就減1,當此值的參考次數變為0時,就說明沒有辦法參考此值了,可以將其占用的記憶體回識訓來了,當垃圾收集器運行時,就會釋放參考次數為0的變數占用的記憶體,
JavaScript引擎目前都不再使用這種演算法,
為了確保有效的回收記憶體,應及時解除不再使用的全域變數、全域物件屬性以及回圈參考變數的參考,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/197192.html
標籤:JavaScript
上一篇:node.js靜態資源訪問
下一篇:Vuex 部分
