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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:54:28
字體:
來源:轉載
供稿:網友

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

新生代和老生代

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

新生代的垃圾回收算法 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的新生代垃圾回收淺析做了簡單的介紹,感謝大家的閱讀和對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江山市| 江口县| 汝阳县| 鹤峰县| 莲花县| 科技| 东光县| 江津市| 奎屯市| 阳山县| 凤山市| 南和县| 炎陵县| 玉龙| 宁海县| 郎溪县| 阳江市| 凌海市| 大英县| 濉溪县| 靖安县| 阿拉善盟| 绍兴市| 延川县| 乐昌市| 贵阳市| 深泽县| 嘉义市| 高安市| 华安县| 施秉县| 高平市| 会昌县| 炎陵县| 龙江县| 榆社县| 大新县| 阜平县| 福清市| 南木林县| 台安县|