javaScriipt 使用垃圾回識訓制來自動管理記憶體
js 的回識訓制目前分為兩種方式:1.標記清除(各大瀏覽器主流演算法)2.參考技術
一: 標記清除
這種演算法的思想是給當前不使用的值加上標記,然后再回收其記憶體
演算法流程:
1.瀏覽器再運行的時候會給存盤再記憶體中的所有變數都加上標記
2.去掉環境中的變數以及被環境中參考的變數的標記
3.如果還有變數有標記,就會被視為準備洗掉的變數
4.垃圾回識訓制完成記憶體的清除作業,銷毀那些帶標記的變數,并回收他們所占用的記憶體空間
二:參考計數
這種演算法的思想是跟蹤記錄所有值被參考的次數,javaScript 引擎目前都不再使用這種演算法,但再IE 中訪問非原生JavaScriopt 物件(如DOM元素)時,這種演算法任然可能會導致問題
當代碼中存在回圈參考現象時,參考計數演算法就會導致問題
解除變數的參考不僅可以幫于消除回圈參考現象(一個變數使用完之后賦值為null),而且對垃圾收集也有好處,為了確保有效的回收記憶體,應該及時解除不再使用的全域物件、全域物件屬性以及回圈參考變數的參考
演算法流程:
1.宣告了一個變數并將一個參考型別的值賦值給這個變數,這個參考型別值參考次數就是1
2.同一個值又被賦值另一個變數,這個參考型別的值參考次數加1
3.當包含這個參考型別值得變數又被賦值另一個值了,那么這個參考型別的值的參考次數減一
4.當參考次數變成0時, 說明這個值需要解除參考
5.當垃圾回識訓制下次運行時,它就會釋放參考次數為0 的值所占用的記憶體
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/134935.html
標籤:JavaScript
上一篇:onload與ready的區別
