In JVM, "stop the world" is such an amazing word, but tons of works and researches in this area to reduce it effect when doing Garbage Collection (GC).
Recently, in JVM study, several GC collectors have been designed to achieve a better performance of our java application. And there are two ways to claim whether it"s a good or excellent GC collector.
Have a good throughput.
Have a short pause time.
TerminologyThroughput: means the percentage that the time of application threads running in the time of total threads running (which including the time application threads consuming and GC threads consuming).
Pause time: means the time that all application threads are paused due to GC threads running.
RelationshipIn ideal world, we want GC collector to achieve a high throughput and short pause time, but throughput and pause time is like the two sides of the coin. We can"t achieve the best throughput and the shortest pause time at the same time.
In simple words, GC is running in a way that they need to run when reach to the safe point, when that GC need make sure that application threads would not change the status of all objects during the time GC threads are marking and cleaning the garbage objects. But each of the GC has additional overhead, for example, the content switch, consuming in cache, and security overhead in JVM lock mechanism. These are the additional overhead to run a GC every time.
If we want to have high throughput in our JVM performance, we need try to avoid these overhead during GC. In this case, less frequent GC is the solution to improve the throughput. Since we deal more objects at time to reduce the percentage spending on these additional overhead.
However, due to the much large objects need to scan, the time to implement a GC will increase. It would increase the time of each GC, which means pause time is increased.
Therefore, throughput and pause time is contradiction in GC world. We can"t hold them together, a tradeoff between them is needed in different scenario.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65284.html
摘要:要加左右,因為位機器上的對象更大要加左右,因為位機器上的對象更大對于服務器程序的原則是保證越多內存越好將和設置成一樣大,關掉自動調整大小的機制。對于服務器程序的原則是決定你能夠給的最大內存,然后根據的大小來找到最好的設置。 Generations Young Generation 組成:eden + 2 survivor spaces Young generation的gc稱作min...
摘要:如果開啟,則每次后會重新計算和區的大小,計算依據是過程中統計的時間吞吐量內存占用量。應用達到預期的吞吐量,即應用正常運行時間正常運行時間耗時。理論上,增大內存,可以降低的頻率,以此達到預期吞吐量。 轉載請注明原文鏈接:https://www.jianshu.com/p/741... 一、AdaptiveSizePolicy簡介 AdaptiveSizePolicy(自適應大小策略) ...
摘要:這將預測出當達到多少時,將發生下一次算法把這個閾值傳給另一個線性回歸模型,這個模型將推測內存的時間序列并預測新的一個發生的時間將四種基本算法改為對應的感知性算法如果預選取的節點在很短的時間內要發生,則跳過該節點,評估其他節點。 TRINI: an adaptive load balancing strategy based on garbage collection for clust...
摘要:序本文主要研究一下參數的遷移。比如實例為,為,文件數為,每個文件,文件名為,為和輸出實例遷移舊版相關參數遷移舊版運行時參數遷移小結把的配置統一到了中,可以按照官方給出的新舊參數映射表進行遷移。 序 本文主要研究一下java9 gc log參數的遷移。 統一JVM及GC的Logging java9引進了一個統一的日志框架,對gc log的輸出進行了統一的配置。 相關JEP(JDK Enh...
閱讀 3729·2021-11-24 09:39
閱讀 2610·2019-08-30 15:54
閱讀 1149·2019-08-30 13:01
閱讀 3429·2019-08-28 18:30
閱讀 1623·2019-08-26 17:44
閱讀 3591·2019-08-26 11:31
閱讀 2413·2019-08-26 10:40
閱讀 1239·2019-08-26 10:27