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

首頁 > 學院 > 開發設計 > 正文

JVM-GC算法與種類

2019-11-08 01:52:40
字體:
來源:轉載
供稿:網友

一、GC的概念

GC(GarbageCollection 垃圾收集),GC的對象是堆空間和永久區

二、GC算法

1、引用計數法

老牌垃圾回收算法通過引用計算來回收垃圾使用者–COM–ActionScript3–Python       引用計數器的實現很簡單,對于一個對象A,只要有任何一個對象引用了A,則A的引用計數器就加1,當引用失效時,引用計數器就減1。只要對象A的引用計數器的值為0,則對象A就不可能再被使用。

2、標記清除

       標記-清除算法是現代垃圾回收算法的思想基礎。標記-清除算法將垃圾回收分為兩個階段:標記階段和清除階段。一種可行的實現是,在標記階段,首先通過根節點,標記所有從根節點開始的可達對象。因此,未被標記的對象就是未被引用的垃圾對象。然后,在清除階段,清除所有未被標記的對象。

3、標記壓縮

      標記-壓縮算法適合用于存活對象較多的場合,如老年代。它在標記-清除算法的基礎上做了一些優化。和標記-清除算法一樣,標記-壓縮算法也首先需要從根節點開始,對所有可達對象做一次標記。但之后,它并不簡單的清理未標記的對象,而是將所有的存活對象壓縮到內存的一端。之后,清理邊界外所有的空間。

4、復制算法

與標記-清除算法相比,復制算法是一種相對高效的回收方法不適用于存活對象較多的場合如老年代將原有的內存空間分為兩塊,每次只使用其中一塊,在垃圾回收時,將正在使用的內存中的存活對象復制到未使用的內存塊中,之后,清除正在使用的內存塊中的所有對象,交換兩個內存的角色,完成垃圾回收復制算法的最大問題是:空間浪費整合標記清理思想

三、分代思想

依據對象的存活周期進行分類,短命對象歸為新生代,長命對象歸為老年代。根據不同代的特點,選取合適的收集算法–少量對象存活,適合復制算法–大量對象存活,適合標記清理或者標記壓縮

四、Stop-The-World

java中一種全局暫停的現象–全局停頓,所有Java代碼停止,native代碼可以執行,但不能和JVM交互–多半由于GC引起?Dump線程?死鎖檢查?堆Dump注:GC時為什么會有全局停頓?   – 類比在聚會時打掃房間,聚會時很亂,又有新的垃圾產生,房間永遠打掃不干凈,只有讓大家停止活動了,       才能將房間打掃干凈。危害–長時間服務停止,沒有響應–遇到HA系統,可能引起主備切換,嚴重危害生產環境。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌乐县| 南城县| 厦门市| 昌乐县| 佛坪县| 安丘市| 东乡族自治县| 葫芦岛市| 永宁县| 辽源市| 内丘县| 定襄县| 阳原县| 日土县| 祁东县| 宁津县| 故城县| 都兰县| 邛崃市| 哈巴河县| 镇巴县| 莫力| 铜鼓县| 聂拉木县| 保山市| 皋兰县| 上虞市| 广南县| 麟游县| 南溪县| 清流县| 太湖县| 徐州市| 灵璧县| 乌兰浩特市| 榕江县| 云龙县| 邻水| 金沙县| 塘沽区| 邯郸县|