Ne me prenez pas au mot. Je ne fais que répéter ce que j'ai rassemblé de différentes sources. HotSpot JVM utilise des tampons d'allocation de threads locaux (TLAB). Les TLAB peuvent être synchronisés ou non. La plupart du temps, les TLAB ne sont pas synchronisés et un thread peut donc être alloué très rapidement. Il existe un grand nombre de ces TLAB afin que les threads actifs obtiennent leurs propres TLAB. Les threads moins actifs partagent un TLAB synchronisé. Lorsqu'un thread épuise son TLAB, il obtient un autre TLAB d'un pool. Lorsque le pool est à court de TLAB, Young GC est déclenché ou nécessaire. Lorsque le pool ne contient plus de TLAB, il reste des TLAB avec de l'espace libre. Cet "espace inutilisé" s'additionne et est significatif. On peut voir cet espace car le GC est déclenché avant que la taille du tas réservée ou la taille maximale du tas ne soit atteinte. Ainsi, le tas est effectivement 10-30% plus petit. Au moins, c'est ce que je devine en regardant les graphiques d'utilisation du tas.Comment optimiser l'espace inutilisé dans le tas Java
Comment régler la JVM pour réduire l'espace inutilisé?