日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

垃圾收集器

發布時間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 垃圾收集器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

串行回收和并行回收

串行回收:JDK1.5 前的默認算法,執行垃圾回收時程序停止時間較長,缺點是只有一個線程

并行回收:多個線程執行垃圾回收,適合吞吐量系統,回收時系統停止運行

Serial 收集器

最古老的、最穩定的的收集器,可能產生較長的停頓,僅適用單線程收集,新生代、老年代均采用串行回收,新生代采用賦值算法,老年代采用標記->壓縮算法,垃圾收集過程中會 Stop The World(服務暫停)

特點:CPU利用率最高,停頓時間即用戶等待時間比較長

適用場景:小型應用

-XX:+UseSerialGC 可以使用串行垃圾回收器

ParNew收集器

多線程版本 Serial,新生代并行,老年代串行

-XX:+UseParNewGC 使用 ParNew 收集器

-XX:ParallelGCThreads 限制線程數量

Parallel 收集器

Parallel Scavenge 收集器類似 ParNew 收集器,Parallel 收集器更關注系統的吞吐量,可以通過參數來打開自適應調節策略,虛擬機會根據當前系統的運行情況收集性能監控信息,動態調整這些參數以提供最合適的停頓時間或最大的吞吐量,也可以通過參數控制GC的時間不大于多少毫秒或者比例,新生代復制算法,老年代標記-壓縮

采用多線程來通過掃描并壓縮堆
特點:停頓時間短,回收效率高,對吞吐量要求高
適用場景:大型應用,科學計算,大規模數據采集等

XX:+USeParNewGC 打開并發標記掃描垃圾回收器

Cms 收集器

CMS 為降低延遲而生,通過盡可能的并行執行垃圾回收的幾個階段來把延遲控制到最低,CMS 是老年代收集器,一般情況下采用 ParNew 來配合執行新生代的回收

收集階段:

  • 初始標記
  • 并發標記:
  • 預清理
  • 可中斷預清理
  • 最終標記
  • 并發清除
  • 并發重置

其中初始標記、重新標記這兩個步驟仍然需要 Stop The World,初始標記僅僅只是標記一下 GC Roots 能直接關聯到的對象,速度很快,并發標記階段就是進行 GC Roots Tracing 的過程,而重新標記階段則是為了修正并發標記期間,因用戶程序繼續運作而導致標記產生變動的那一部分對象的標記記錄,這個階段的停頓時間一般會比初始標記階段稍長一些,但遠比并發標記的時間短

由于整個過程中耗時最長的并發標記和并發清除過程中,收集器線程都可以與用戶線程一起工作,所以總體上來說,CMS收集器的內存回收過程是與用戶線程一起并發地執行

特點:響應時間優先,減少垃圾收集停頓時間

優點:并發采集,低停頓

缺點:產生大量空間碎片、并發階段會降低吞吐量

-XX:+UseConcMarkSweepGC

G1 收集器

在G1中,堆被劃分成 許多個連續的區域(region)。采用G1算法進行回收,吸收了CMS收集器特點

特點:

  • 支持很大的堆,高吞吐量
  • 支持多 CPU 垃圾回收
  • 在主線程暫停時,使用并行回收
  • 在主線程運行時,使用并發回收

-XX:+UseG1GC 使用G1垃圾回收器

使用 Jmeter 壓力測試工具測試吞吐量以測試幾種收集器

總結

以上是生活随笔為你收集整理的垃圾收集器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。