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

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 10:59:37
字體:
來源:轉載
供稿:網友

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

新生代和老生代

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陇西县| 达尔| 四子王旗| 舟山市| 阳山县| 沈阳市| 瑞金市| 建瓯市| 岢岚县| 杨浦区| 庆城县| 台湾省| 丹东市| 淮北市| 理塘县| 通海县| 宜良县| 闻喜县| 克什克腾旗| 平邑县| 资源县| 威海市| 长兴县| 科技| 长垣县| 石台县| 远安县| 宁陵县| 大兴区| 武安市| 信宜市| 莫力| 周宁县| 阳山县| 建瓯市| 遵化市| 吉木萨尔县| 承德县| 阳江市| 顺义区| 浪卡子县|