これに私の言葉を使わないでください。私はちょうど私がさまざまな情報源からつなぎ合わせたものを繰り返しています。 HotSpot JVMは、スレッドローカル割り当てバッファ(TLAB)を使用します。 TLABは同期されてもされなくてもよい。ほとんどの場合、TLABは同期されておらず、したがってスレッドは非常に迅速に割り当てることができます。アクティブなスレッドが独自のTLABを取得できるように、多数のTLABが存在します。アクティブでないスレッドは、同期されたTLABを共有します。スレッドがTLABを使い果たすと、プールから別のTLABを取得します。プールにTLABがなくなると、Young GCが起動または必要になります。Javaヒープ内の未使用領域を最適化する方法
プールにTLABがなくなると、TLABにはまだスペースが残っています。この「未使用スペース」は増えており、重要です。予約されたヒープ・サイズまたは最大ヒープ・サイズに達する前にGCがトリガーされるため、このスペースを見ることができます。したがって、ヒープは効果的に10〜30%小さくなります。少なくともヒープ使用グラフを見ると私の推測です。
未使用領域を減らすためにJVMをチューニングするにはどうすればよいですか?