真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JSt的垃圾回收機(jī)制介紹

前言

10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有芷江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

JS具有自動(dòng)垃圾回收機(jī)制,換句話說(shuō),執(zhí)行環(huán)境會(huì)管理代碼執(zhí)行過(guò)程中使用的內(nèi)存。

JS垃圾回收的原理

執(zhí)行環(huán)境會(huì)找出那些不再繼續(xù)使用的變量,然后釋放其占用的內(nèi)存。

JS垃圾回收的策略

標(biāo)記清除

當(dāng)變量進(jìn)入環(huán)境時(shí),就將這個(gè)變量標(biāo)記為“進(jìn)入環(huán)境”,而當(dāng)變量離開(kāi)環(huán)境時(shí),則將其標(biāo)記為“離開(kāi)環(huán)境”。

標(biāo)記變量方式看具體的實(shí)現(xiàn),比如可以使用一個(gè)“進(jìn)入環(huán)境”的變量列表和一個(gè)“離開(kāi)環(huán)境”的變量列表來(lái)跟蹤哪個(gè)變量發(fā)生了變化。

使用過(guò)標(biāo)記清除的瀏覽器有IE,F(xiàn)irefox,chrome。

引用計(jì)數(shù)

這是一種不太常見(jiàn)的垃圾回收的策略,它就是跟蹤每一個(gè)值被引用的次數(shù)。

當(dāng)聲明了一個(gè)變量a并將一個(gè)引用類型值({name:'cc'})賦給該變量時(shí),則這個(gè)值的引用次數(shù)就是1,如果a({name:'cc'})又賦給另一個(gè)變量b,則該值的引用次數(shù)加1。反之,如果a賦值{name:'xx'},則{name:'cc'}這個(gè)值的引用次數(shù)減1。當(dāng){name:'cc'}這個(gè)值的引用的次數(shù)變?yōu)?時(shí),則說(shuō)明沒(méi)有辦法再訪問(wèn){name:'cc'}這個(gè)值了,因而可以將其占用的內(nèi)存空間回收。這樣,當(dāng)垃圾回收器工作的時(shí)候,{name:'cc'}這個(gè)值占用的內(nèi)存空間就會(huì)被回收。

這種方式曾今被Netscape Navigator 3.0使用過(guò),但是有一個(gè)嚴(yán)重問(wèn)題:循環(huán)引用。

function circleReferenceProbem(){
  let objectA = new Object()
  let objectB = new Object()
  objectA.someOtherObject = objectB
  objectB.anotherObject = objectA
}

執(zhí)行這個(gè)函數(shù)后,因?yàn)檫@兩個(gè)引用值的引用次數(shù)永遠(yuǎn)不會(huì)為0,垃圾回收器永遠(yuǎn)不會(huì)回收它們占用的內(nèi)存空間。

JS垃圾回收器的性能

因?yàn)镴S垃圾回收器是每隔一個(gè)周期就執(zhí)行一次垃圾回收。

如果為變量分配的內(nèi)存數(shù)量不大的話,那么垃圾回收器的回收工作量就不大。但是,當(dāng)垃圾回收器的工作量過(guò)大的時(shí)候,就很可能會(huì)出現(xiàn)卡頓的情況。

JS中管理內(nèi)存的建議

1、盡量少用全局變量

2、盡可能手動(dòng)清除變量的引用

以上就是快速理解 JavaScript 的垃圾回收的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


當(dāng)前題目:JSt的垃圾回收機(jī)制介紹
網(wǎng)頁(yè)地址:http://weahome.cn/article/jcjshh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部