麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 瀏覽器的垃圾回收機制

瀏覽器的垃圾回收機制

來源:千鋒教育
發布人:wjy
時間: 2022-09-07 16:59:00 1662541140

垃圾回收:JavaScript代碼運行時,需要分配內存空間來儲存變量和值。當變量不在參與運行時,就需要系統收回被占用的內存空間,這就是垃圾回收。

回收機制:Javascript 具有自動垃圾回收機制,會定期對那些不再使用的變量、對象所占用的內存進行釋放,原理就是找到不再使用的變量,然后釋放掉其占用的內存。

JavaScript中存在兩種變量:局部變量和全局變量。全局變量的生命周期會持續要頁面卸載;而局部變量聲明在函數中,它的生命周期從函數執行開始,直到函數執行結束,在這個過程中,局部變量會在堆或棧中存儲它們的值,當函數執行結束后,這些局部變量不再被使用,它們所占有的空間就會被釋放。

不過,當局部變量被外部函數使用時,其中一種情況就是閉包,在函數執行結束后,函數外部的變量依然指向函數內部的局部變量,此時局部變量依然在被使用,所以不會回收。

(2)垃圾回收的方式

瀏覽器通常使用的垃圾回收方法有兩種:標記清除,引用計數。

 1)標記清除

標記清除是瀏覽器常見的垃圾回收方式,當變量進入執行環境時,就標記這個變量“進入環境”,被標記為“進入環境”的變量是不能被回收的,因為他們正在被使用。當變量離開環境時,就會被標記為“離開環境”,被標記為“離開環境”的變量會被內存釋放。

垃圾收集器在運行的時候會給存儲在內存中的所有變量都加上標記。然后,它會去掉環境中的變量以及被環境中的變量引用的標記。而在此之后再被加上標記的變量將被視為準備刪除的變量,原因是環境中的變量已經無法訪問到這些變量了。最后。垃圾收集器完成內存清除工作,銷毀那些帶標記的值,并回收他們所占用的內存空間。

2)引用計數

另外一種垃圾回收機制就是引用計數,這個用的相對較少。引用計數就是跟蹤記錄每個值被引用的次數。當聲明了一個變量并將一個引用類型賦值給該變量時,則這個值的引用次數就是1。相反,如果包含對這個值引用的變量又取得了另外一個值,則這個值的引用次數就減1。當這個引用次數變為0時,說明這個變量已經沒有價值,因此,在在機回收期下次再運行時,這個變量所占有的內存空間就會被釋放出來。

這種方法會引起循環引用的問題:例如: obj1obj2通過屬性進行相互引用,兩個對象的引用次數都是2。當使用循環計數時,由于函數執行完后,兩個對象都離開作用域,函數執行結束,obj1obj2還將會繼續存在,因此它們的引用次數永遠不會是0,就會引起循環引用。

這種情況下,就要手動釋放變量占用的內存:

(3)減少垃圾回收

雖然瀏覽器可以進行垃圾自動回收,但是當代碼比較復雜時,垃圾回收所帶來的代價比較大,所以應該盡量減少垃圾回收。

對數組進行優化: 在清空一個數組時,最簡單的方法就是給其賦值為[ ],但是與此同時會創建一個新的空對象,可以將數組的長度設置為0,以此來達到清空數組的目的。

對object進行優化: 對象盡量復用,對于不再使用的對象,就將其設置為null,盡快被回收。

對函數進行優化: 在循環中的函數表達式,如果可以復用,盡量放在函數的外面。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 最近高清中文字幕在线国语5| 日本肉动漫无遮挡无删减在线观看 | 免费大黄网站| 日本japanese丰满护士| 免费网站看v片在线a| 国产一区美女视频| 里番库全彩本子彩色h琉璃| 国产馆手机在线观看| 国产成人精品亚洲一区| 激情小说第一页| 黄网站在线播放| 久久精品综合| 在线免费中文字幕| 高h全肉动漫在线观看免费| 日本一区二区三区在线观看| 国产大学生粉嫩无套流白浆| 最近中文2019字幕第二页| 顶级欧美色妇xxxxx| 国产理论片在线观看| 国产真实迷j在线播放| 男生被男生到爽动漫| 成人三级k8经典网| 在线观看亚洲视频| 午夜欧美激情| 波多野结衣四虎| 欧美边吃奶边爱边做视频| 色综合天天综合网国产成人网| 国产精品日本一区二区在线播放 | 成人动漫视频在线| 日韩美香港a一级毛片| 久久综合狠狠综合久久综合88| 免费高清理伦片在线观看| 欧美国产综合| 黑人日皮| 夫妇交换性3中文字幕k8| 国产女主播喷水视频在线观看 | 欧美日韩精品一区二区三区高清视频| 亚洲人成在线播放网站| 天天操天天爱天天干| 中文字幕一区二区三区精彩视频| 国产嫩草在线观看|