2017-12-27 29 views
0

GCログは以下の通りです:JVMの割当て速度が高いほどパフォーマンスに影響しますか?どのように-Xmx32mと

808: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003076 secs] 
819: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003079 secs] 
830: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0002968 secs 



2nd Allocation rate is (9760-32)/(819-808)= 884.36K 
3rd Allocation rate is (9760-32)/(830-819)= 884.36K 

-Xmx64mとGCログ以下の通りです:https://plumbr.io/handbook/gc-tuning-in-practiceあたりとhttp://stuff-gil-says.blogspot.com/2014/10/what-sort-of-allocation-rates-can.html柱として

808: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003748 secs] 
831: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0004538 secs] 
855: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003355 secs] 

2nd allocation rate is (20512-32)/(831-808)=890.43K 
3nd allocation rate is (20512-32)/(855-831)=853.33K 

、下の配分率が優れています。どうやって?

答えて

1

私は正確な質問が何であるか分かりません。リンクには、対象がカバーされています。私は要約しようとします:

  1. 割り当て率はマイナーGCの頻度に影響します。より頻繁に割り当てを行うほど、マイナーGCを実行する必要があります。マイナーなGC JVMを実行するには、未使用のオブジェクトを見つけてGCが行う他の処理を実行するために、CPUパワーを使用する必要があります。つまり、アプリケーションコードを実行するのではなく、ガベージコレクションに使用されるCPUの能力があります。時には、アプリケーションコードが負荷を処理するためにはすべてのCPUパワーを必要とし、あまりにも頻繁なGCはスループットに悪影響を及ぼすことがあります。スループットを向上させるには、割当率の削減に取り組むことができます。これによりGCの頻度が低くなり、トラフィック処理に必要なCPUが増えます。

  2. 時期尚早のプロモーションに関連する問題もあります。割当率が高いとマイナーなGCが頻繁に発生する可能性があります。これは、マイナーなGCがほとんど生存していないため、一部の短い生存オブジェクトが古い世代に昇格する可能性があることを意味します。マイナーGCが非常に頻繁である場合、それらのうちのわずかしか生き残っていないとしても、そのオブジェクトが長生きであることを意味するわけではありません。短命の生き物を古い世代に昇進させることは、より頻繁な主要なGCにつながります。

関連する問題