溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java虛擬機中如何進行性能調優

發布時間:2022-01-17 15:49:41 來源:億速云 閱讀:144 作者:kk 欄目:大數據

這篇文章的內容主要圍繞Java虛擬機中如何進行性能調優進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

一.  如何找到一個垃圾?

1)  引用計數算法:給對象添加一個引用計數器,有一次引用,計數器值就加1;當引用失效時,計數器值就減1。很多流程的編程語言例如Python都使用這種方法管理內存,但是主流的Java虛擬機沒有選用它,主要原因是它很難解決對象之間相互循環引用的問題。

2)  根可達性分析算法:因為引用計數算法無法解決對象之間相互循環引用的問題,繼而引出了這個算法。思想是以GC Roots作為起始點開始向下搜索,所走過的路徑成為引用鏈,當一個對象到GC Roots沒有任何引用鏈時,則這個對象是不可用的,就是垃圾。

二.  找到一個垃圾后,如何清除它?

1)  Mark-Sweep(標記清除):先標記出可回收的對象,然后清除。如下黑色部分為可回收對象,灰色部分為存活對象,綠色部分為未使用對象。

它的主要不足有兩個:

1. 標記和清除兩個過程的效率都不高

2. 另一個是空間的問題,標記清除之后產生了大量不連續的內存碎片,碎片會導致以后需要分配較大對象時,無法找到足夠的連續內存,繼而提前觸發另一次垃圾收集動作。

2)  Copying(拷貝):將內存劃分為兩塊,將存活對象全部copy到下面的區域,然后把上面的全部清除。

新生代中的Survivor1和Survivor2就是這樣的。

缺點:浪費內存

3)  Mark-Compact(標記壓縮或者標記整理):既不想碎片化,又不想浪費內存,就先將回收的對象標記起來,然后一邊回收,一邊把存活對象向一端移動。

缺點:效率偏低

3. CMS 全稱 ConcurrentMarkSweep 老年代 并發的,垃圾回收和應用程序同時進行,降低STW的時間(200ms),CMS問題很多,所以沒有一個版本默認是CMS,只能手動設定。CMS既然是MarkSweep,就一定會有碎片化的問題,碎片達到一定的程度,CMS老年代分配對象分配不下的時候,使用Serial Old進行老年代回收。(面試重災區)

主要有四個過程:

初始標記、并發標記、重新標記、并發清理

CMS的缺點是:產生了浮動垃圾,并且使用Serial Old來清理整個老年代,這是CMS設計的缺陷;但是如果CMS做好調優,支持的內存要比Parallel Old大的多。

想象一下:

PS + PO -> 加內存 換垃圾回收器 -> PN + CMS + Serial Old (幾個小時-幾天的STW) ,幾十個G 的內存,單線程的回收 -> G1 + Full GC  幾十個G -> 上T內存的服務器 ZGC 

CMS并發標記采用的是: 三色標記法 + Incremental Update

4.  G1 垃圾回收器 (200ms - 10 ms)

算法:三色標記 + SATB

由于越來越多的內存需要回收,必然會產生STW,所以G1應運而生。

邏輯分代,物理不分代。

4.  ZGC (10ms - 1ms )  PK C++

算法:ColoredPointers + LoadBarrier

5.  Shenandoah

算法:ColorPointers + WriteBarrier

CMS中新生代的默認年齡是6,PS/PO中新生代的默認年齡是15,進入老年代,可以通過參數:-XX:MaxTenuringThreshold配置

jdk1.0自帶的Serial和Serial Old,現在用的最多的是Parallel Scavenge和Parallel Old,調優用的是ParNew和CMS,jdk1.8用G1也沒有問題

jdk1.8默認是Parallel Scavenge和Parallel Old,不管是單線程Serial還是并行Parallel,只要人多,都會出現問題,所以就有了承前啟后的ParNew和CMS。

Java的特點有哪些

Java的特點有哪些 1.Java語言作為靜態面向對象編程語言的代表,實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 2.Java具有簡單性、面向對象、分布式、安全性、平臺獨立與可移植性、動態性等特點。 3.使用Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

感謝你的閱讀,相信你對“Java虛擬機中如何進行性能調優”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女