亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

javascript的垃圾回收機制

標簽:
JavaScript

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;

js的 垃圾回收机制,常用的有两种方法:标记清除,引用计数;

标记清除:当变量进入环境时标记为“进入环境”,当变量离开环境时标记为“离开环境”;然后垃圾收集器会定时去清除,销毁被标记为离开环境的变量,释放其内存;

引用计数:

跟踪记录每一个引用的值被引用的次数。即变量每被引用一次,引用计数加1,相反当包含这个值的 引用变量又取得了另外一个值(另外一个值赋给了引用这个值的变量),引用计数减1;当引用计数变为0时,则说明没有值引用这个值了,此时(你已经猜到了)这个变量就可以被垃圾回收机制回收了,(因为没有在被引用了);

内存泄漏:

webp

最常见的循环引用

相互引用计数永远不可能为0,所以两个变量内存永远都不会被释放,如果程序执行多次,这样的变量越来越多;浏览器越来越卡,终究会奔溃;

内存管理:

js的垃圾收集机制,让我们开发人员无需担心内存管理的问题,但是内存终究有限;所以建议:在开发中,确保一些内存占用非常大的变量不在使用时,我们可以主动:变量 = null;当然,你不这样做也是可以的,只是会对内存造成浪费,对浏览器的性能造成一定的影响;

性能问题:

ie6及之前在运行垃圾收集机制时会以以下几个临界值作为条件:达256个变量,4096个对象或者数组元素,或者64kb的字符串(JavaScript高级编程),达到任何一个临界值,垃圾收集器就会运行;问题在于:可能某个执行脚本中一直存在那么多的变量,那么垃圾收器会频繁的运行,这对性能本来就是一种不良行为,导致性能问题严重;所以决定一个浏览器性能与其垃圾收集机制息息相关,另外需要注意,垃圾收集机制是周期性运行的;



作者:XBGG
链接:https://www.jianshu.com/p/14d9c7a3eb3f


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消