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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

4. 垃圾回收- 4.3垃圾收集器

發(fā)布時間:2025/3/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4. 垃圾回收- 4.3垃圾收集器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

下面一張圖是HotSpot虛擬機包含的所有收集器,圖是借用過來滴:

  • Serial收集器(復制算法)
    新生代單線程收集器,標記和清理都是單線程,優(yōu)點是簡單高效。是client級別默認的GC方式,可以通過-XX:+UseSerialGC來強制指定。
  • Serial Old收集器(標記-整理算法)
    老年代單線程收集器,Serial收集器的老年代版本。
  • ParNew收集器(停止-復制算法) 
    新生代收集器,可以認為是Serial收集器的多線程版本,在多核CPU環(huán)境下有著比Serial更好的表現(xiàn)。
  • Parallel Scavenge收集器(停止-復制算法)
    并行收集器,追求高吞吐量,高效利用CPU。吞吐量一般為99%, 吞吐量= 用戶線程時間/(用戶線程時間+GC線程時間)。適合后臺應用等對交互相應要求不高的場景。是server級別默認采用的GC方式,可用-XX:+UseParallelGC來強制指定,用-XX:ParallelGCThreads=4來指定線程數(shù)。
    • Parallel Old收集器(停止-復制算法)
      Parallel Scavenge收集器的老年代版本,并行收集器,吞吐量優(yōu)先。
    • CMS(Concurrent Mark Sweep)收集器(標記-清理算法)
      高并發(fā)、低停頓,追求最短GC回收停頓時間,cpu占用比較高,響應時間快,停頓時間短,多核cpu 追求高響應時間的選擇。
    • CMS 和G1的垃圾回收器的原理,阿里的面試官也問過,我專門做了專題:

圖解-CMS垃圾回收機制原理 --阿里面試題

CMS收集器和G1收集器優(yōu)缺點

G1垃圾收集器入門

GC是什么時候觸發(fā)的(面試最常見的問題之一)

??由于對象進行了分代處理,因此垃圾回收區(qū)域、時間也不一樣。GC有兩種類型:Scavenge GC和Full GC。

Scavenge GC

??一般情況下,當新對象生成,并且在Eden申請空間失敗時,就會觸發(fā)Scavenge GC,對Eden區(qū)域進行GC,清除非存活對象,并且把尚且存活的對象移動到Survivor區(qū)。然后整理Survivor的兩個區(qū)。這種方式的GC是對年輕代的Eden區(qū)進行,不會影響到年老代。因為大部分對象都是從Eden區(qū)開始的,同時Eden區(qū)不會分配的很大,所以Eden區(qū)的GC會頻繁進行。因而,一般在這里需要使用速度快、效率高的算法,使Eden去能盡快空閑出來。

Full GC

  對整個堆進行整理,包括Young、Tenured和Perm。Full GC因為需要對整個堆進行回收所以比Scavenge GC要慢,因此應該盡可能減少Full GC的次數(shù)。在對JVM調(diào)優(yōu)的過程中,很大一部分工作就是對于Full GC的調(diào)節(jié)。有如下原因可能導致Full GC:

    a) 年老代(Tenured)被寫滿;

    b) 持久代(Perm)被寫滿;

    c) System.gc()被顯示調(diào)用;

    d) 上一次GC之后Heap的各域分配策略動態(tài)變化;

?

下一篇:內(nèi)存分配

?

原文鏈接:https://www.cnblogs.com/aspirant/p/8662690.html

轉(zhuǎn)載于:https://www.cnblogs.com/wangfajun/p/9916339.html

總結

以上是生活随笔為你收集整理的4. 垃圾回收- 4.3垃圾收集器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。