国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js的新生代垃圾回收知識點總結

2024-05-06 15:35:40
字體:
來源:轉載
供稿:網友

在進行老生代的標記清除法回收以前,還會有一個新生代的垃圾回收算法執行。

新生代和老生代

所謂新生代,指的是新產生的對象;老生代就是經歷過新生代垃圾回收后還“存活”下來的對象。

新生代的垃圾回收算法 Scavenge GC

算法很簡單:

1. 我們維護一個列表,老生代對象每次指向一個新生對象的時候,記錄下來;每次刪除指向的時候,刪除記錄。(這樣我們就知道新生代對象里面,哪些對象是存活的了)

2. 我們把新生代對象的內存平均分開 2 份空間From 和 To

3. 每當有新生對象誕生,就會在 From 空間出現

4. 一旦 From 空間被占滿,就觸發 Scavenge GC

5. 根據維護的列表,我們從 From 空間拿出存活的對象,復制到 To 空間

6. 清空 From 空間 (這樣就可以實現把不活躍的對象給回收掉)

7. From To 空間角色互換,開始下一輪循環

其中經歷過回收還存活的對象,age++,在 Java 默認情況下,age 15 的時候會晉升到老生代,JS 規定的 age,博主還沒查明

還有一種情況,當復制到 To 空間的時候, To 空間已經使用了25%,那么這個對象直接晉升到老生區。

以上對js的新生代垃圾回收淺析做了簡單的介紹,感謝大家的閱讀和對錯新站長站的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 集贤县| 肇州县| 浪卡子县| 铜山县| 诸暨市| 阆中市| 抚顺县| 兰西县| 来凤县| 大邑县| 娄底市| 汨罗市| 阳信县| 洪洞县| 清涧县| 津市市| 酒泉市| 连平县| 阜南县| 三都| 象山县| 若羌县| 台前县| 梨树县| 广饶县| 花垣县| 白山市| 景宁| 安吉县| 高雄市| 那曲县| 青岛市| 教育| 尉氏县| 阿城市| 论坛| 博野县| 如皋市| 芦溪县| 应城市| 威远县|