淺談瀏覽器垃圾回收機制


javaScriipt 使用垃圾回收機制來自動管理內存

js 的回收機制目前分為兩種方式:1.標記清除(各大瀏覽器主流算法)2.引用技術

  一: 標記清除

    這種算法的思想是給當前不使用的值加上標記,然后再回收其內存

    算法流程:

      1.瀏覽器再運行的時候會給存儲再內存中的所有變量都加上標記

      2.去掉環境中的變量以及被環境中引用的變量的標記

      3.如果還有變量有標記,就會被視為准備刪除的變量

      4.垃圾回收機制完成內存的清除工作,銷毀那些帶標記的變量,並回收他們所占用的內存空間

  二:引用計數

    這種算法的思想是跟蹤記錄所有值被引用的次數。javaScript 引擎目前都不再使用這種算法,但再IE 中訪問非原生JavaScriopt 對象(如DOM元素)時,這種算法任然可能會導致問題

    當代碼中存在循環引用現象時,引用計數算法就會導致問題

    解除變量的引用不僅可以幫於消除循環引用現象(一個變量使用完之后賦值為null),而且對垃圾收集也有好處。為了確保有效的回收內存,應該及時解除不再使用的全局對象、全局對象屬性以及循環引用變量的引用

    算法流程:

      1.聲明了一個變量並將一個引用類型的值賦值給這個變量,這個引用類型值引用次數就是1

      2.同一個值又被賦值另一個變量,這個引用類型的值引用次數加1

      3.當包含這個引用類型值得變量又被賦值另一個值了,那么這個引用類型的值的引用次數減一

      4.當引用次數變成0時, 說明這個值需要解除引用

      5.當垃圾回收機制下次運行時,它就會釋放引用次數為0 的值所占用的內存

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM