成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java并行GC的使用和調優

開發 后端
并行垃圾收集器(Parallel GC、并行GC)可以在多個線程內并行執行垃圾收集功能,從而減少長時間GC對應用系統造成的影響。下面主要介紹關于并行GC的使用和調優相關內容。

并行垃圾收集器(Parallel GC、并行GC)是在多核CPU環境下的一種JVM垃圾收集算法,它可以在多個線程內并行執行垃圾收集功能,從而減少長時間GC對應用系統造成的影響。

下面主要介紹關于并行GC的使用和調優相關內容。

在什么時候使用并行GC

如果應用存在以下要求,那么就可以考慮使用Parallel GC:

  • 側重吞吐量:如果應用程序對事務吞吐量要求很高,并且可以容忍長時間執行垃圾收集,那么并行GC可能就是一個合適的選擇。它主要通過允許垃圾收集與應用程序執行同時執行來優化吞吐量。
  • 批量處理任務:應用程序如果涉及到批處理或者數據分析的任務,可以考慮使用并行GC。這些類型的應用程序經常執行大量的計算,并行GC有助于最小化垃圾收集過程對應用程序總體處理時間產生的影響。
  • 中等以上堆內存:并行GC非常適合具有中等堆到較大堆的應用程序。如果應用程序需要大量堆來滿足其內存需求,并行GC可以有效地管理內存并減少垃圾收集對應用程序的影響。

如何配置啟用并行GC

可以在啟動Java應用程序時傳遞以下參數,以啟動并行GC(Parallel GC):

-XX:+UseParallelGC

這個JVM參數指的是JVM使用并行GC算法進行垃圾收集。但需要注意的是,在Java 8之前的JVM版本,不需要顯式地指定垃圾收集算法,所有服務類JVM的默認垃圾收集器都是ParallelGC。

在Java 并行GC調優方面,下面介紹幾個用于控制垃圾收集過程的關鍵JVM參數。包括:Heap和generation的大小參數、GC吞吐量相關參數、其他參數。

1.Heap和generation的大小參數  

并行GC的調優涉及到整個堆的大小與年輕代和老代的大小之間的平衡。雖然較大的堆通常會提高吞吐量,但它也會導致執行GC期間消耗更長的時間。因此,找到“堆”和“代”的最佳大小至關重要。下面這些JVM參數支持調整堆大小和生成大小,以實現最佳GC配置。

(1) -Xmx

-Xmx

這個參數設置了最大堆大小,它設置了內存分配的上限。通過仔細評估并選擇恰當的-Xmx值,可以控制整個堆的大小使得應用程序的可用內存和GC性能之間更加平衡。

(2) -XX:NewSize 、-XX:MaxNewSize、-XX:NewRatio

-XX:NewSize 
-XX:MaxNewSize
-XX:NewRatio

這幾個參數決定了分配新對象的Young Generation的大小。-XX:NewSize設置初始大小,而-XX:MaxNewSize用于控制內存上限,-XX:NewRatio用于配置年輕代和終身代之間的比率。通過這些值可以微調年輕代的大小和比例。

(3) -XX:YoungGenerationSizeIncrement

-XX:TenuredGenerationSizeIncrement

-XX:YoungGenerationSizeIncrement

-XX:TenuredGenerationSizeIncrement

這兩個參數分別定義了年輕代和持久代的內存增量大小。年輕代和持久代的大小增量是內存分配和垃圾收集行為中的關鍵因素。增長和收縮是以不同的速度進行的。默認情況下以20%的增量增長,以5%的增量收縮。增長的百分比由參數-XX:YoungGeneratinotallow=<Y>和-XX:TenuredGeneratinotallow=<T>進行配置。

(4) -XX:AdaptiveSizeDecrementScaleFactor

-XX:AdaptiveSizeDecrementScaleFactor

這個參數用于設置在收縮期間遞減的比例因子。根據參數-XX:AdaptiveSizeDecrementScaleFactor=<D>調整收縮的比例。如果增長增量為X%,則收縮的減少量為X/D%。

2.GC吞吐量相關的參數調優

為了實現垃圾收集最佳性能,控制GC暫停時間和優化GC吞吐量至關重要,GC吞吐量一般用“專門用于垃圾收集的時間量”與“應用程序執行時間量”的比例表示。以下是幾個基于GC吞吐量的調優參數。

(1) -XX:MaxGCPauseMillis

-XX:MaxGCPauseMillis

這個參數允許開發人員指定垃圾收集所需的最大暫停時間(以毫秒為單位)。通過設置一個適當的值,開發人員可以調節GC暫停的時長,確保在可接受的范圍內。 

(2) -XX:GCTimeRatio

-XX:GCTimeRatio

這個參數使用公式1 /(1 + N)設置垃圾收集時間與應用程序時間的比率,其中N是正整數值。目的是定義垃圾收集所需的時間與應用程序執行時間的占比,以優化GC吞吐量。例如,-XX:GCTimeRatio=19。使用該配置的目標是將總應用程序執行時間的1/20或5%分配給垃圾收集。這意味著對于每20個時間單位(毫秒),在垃圾收集和應用執行總體時間的大約19毫秒中,大約有1個時間單位的時間將被分配給垃圾收集過程,而剩余的19個時間單位將專門用于應用的執行。這個參數默認值為99,意味著垃圾收集的目標時間為1%。

(3) -XX:GCTimePercentage

-XX:GCTimePercentage

這個參數更加直接,開發人員可以通過這個參數直接分配垃圾收集的時間與應用執行時間的期望百分比(GC吞吐量)。例如:設置“-XX:GCTimePercentage=5”表示分配總時間的5%用于垃圾收集,剩余的95%用于應用程序執行。 

總之,‘-XX:GCTimeRatio‘或‘-XX:GCTimePercentage‘這兩個參數都可以靈活地表示垃圾收集所需的時間。相比之下,使用“-XX:GCTimePercentage”比“-XX:GCTimeRatio”更加好理解。

3.其他參數

 除前面幾個JVM參數之外,還有一些其他參數也可用于調優并行GC算法的性能。

(1) -XX:ParallelGCThreads

-XX:ParallelGCThreads

這個參數允許開發人員指定并行GC算法中用于垃圾收集的線程數。通過基于當前CPU可用的內核數設置適當的值,充分利用多核系統的處理能力來優化吞吐量。線程太少或太多都不利于資源平衡,都可能導致性能不佳。

(2) -XX:-UseAdaptiveSizePolicy

-XX:-UseAdaptiveSizePolicy

這個參數允許根據應用程序對內存的需求動態調整年輕代和老年代的大小。默認情況下,“UseAdaptiveSizePolicy”處于啟用狀態。

啟用:-XX:+UseAdaptiveSizePolicy
關閉:-XX:-UseAdaptiveSizePolicy

然而,默認情況下這個參數會根據應用程序對內存的需求動態調整年輕代和老年代的大小。動態調整可能導致頻繁的“Full GC”,增加了GC時間。為了減少這類問題,我們可以通過設置-XX:-UseAdaptiveSizePolicy參數來禁用它,并減少GC時間。

執行并行GC調優

如果需要了解并行GC的性能,最好的方式是通過分析GC日志。GC日志包含了垃圾收集事件、內存使用情況以及其他相關的指標詳細信息。

以下幾個工具可以幫助分析GC日志:

  • GCey
  • IBM GC
  • Memory Visualizer
  • HP Jmeter
  • Google Garbage Cat

通過使用這些工具,可以讓內存的分配更加直觀,能夠識別潛在的瓶頸,并評估垃圾收集的效率。為并行GC的調優提供依據。

總之

通過調整堆的大小、代的大小和GC吞吐量相關參數等,可以優化垃圾收集過程,最大限度地提高內存利用率,最大限度地減少GC時長,提高Java應用程序的垃圾收集并效率,并釋放Java應用程序的潛力。另外,對應用程序執行過程進行持續監控、分析和優化,是保持應用程序處于最佳性能的重要訣竅。

責任編輯:趙寧寧 來源: andflow
相關推薦

2017-10-13 15:16:38

Java服務GC參數

2023-12-12 08:00:39

2021-08-31 10:41:21

參數調優代碼

2010-03-17 08:49:49

Visual Stud

2023-11-23 09:26:50

Java調優

2011-03-10 14:40:54

LAMPMysql

2012-01-10 14:35:08

JavaJVM

2023-11-30 18:03:55

IDEA工具

2020-11-09 07:34:49

JVM性能監控

2017-07-21 08:55:13

TomcatJVM容器

2011-05-20 14:23:01

Oracle調優

2021-03-04 08:39:21

SparkRDD調優

2019-09-25 15:09:30

MySQL索引SQL

2023-04-03 10:25:00

數據庫性能調優

2015-07-06 10:14:25

Java垃圾回收實戰

2019-09-26 09:24:01

GC原理調優

2011-09-09 15:49:19

AIX操作系統JAVA

2023-10-18 08:01:27

Java虛擬機

2023-06-06 15:42:13

Optuna開源

2018-05-28 08:54:45

SparkRDD Cache緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲啊v在线 | 亚洲乱码国产乱码精品精98午夜 | 日韩欧美在线观看视频 | 可以免费看的毛片 | 日韩精品一区二区三区中文字幕 | 欧美一区二区三区在线 | 黄网在线观看 | 99热.com | 成年人在线观看 | 超级黄色一级片 | 国产免费国产 | 国产精品爱久久久久久久 | 久久新 | 欧美一二三 | 色桃网 | av在线播放一区二区 | 欧美久久久久久 | 91麻豆精品一区二区三区 | 久久成人一区 | 欧美日韩综合一区 | 中文字幕亚洲精品在线观看 | 91精品国产91久久久久久吃药 | 欧美在线观看一区 | 国产成人高清视频 | 精品一级 | 欧美一区二区 | 羞羞视频在线观看 | 手机看片1| 久久久久久免费毛片精品 | 欧美一级久久 | 毛片一区二区三区 | 国产精品一区二区在线播放 | 日本亚洲精品成人欧美一区 | 欧美综合在线观看 | 日本大香伊一区二区三区 | 国产精品一区二区三区四区五区 | 国产婷婷精品 | 久久久999成人 | 中文字幕 国产 | 国产传媒在线播放 | 99在线视频观看 |