Dans G1, objet dont la taille atteint au moins la moitié d'une région. Il est alloué directement dans des régions anciennes contiguës et évite la génération jeune.
G1 découpe le tas en régions égales de 1 à 32 Mio (une puissance de deux choisie selon la taille du tas ; -XX:G1HeapRegionSize la remplace). De grands tableaux, tampons ou chaînes peuvent dépasser la moitié d'une région. Ils occupent alors entièrement une ou plusieurs régions contiguës, et la fin inutilisée de la dernière est perdue.
Cela pose trois problèmes : la fragmentation (il faut des régions libres contiguës), les cycles concurrents prématurés (une allocation humongous peut déclencher une collecte Concurrent Start ; la cause dans le log est G1 Humongous Allocation) et, quand le tas en est presque plein, des échecs d'évacuation ou des collectes complètes. Les objets humongous morts peuvent être récupérés tôt pendant les collectes jeunes, mais ceux qui vivent longtemps restent jusqu'à un cycle concurrent ou une collecte mixte.
Remèdes : augmenter la taille des régions, découper les gros tampons ou les réutiliser. La vue Humongous de GC Doctor liste les collectes concernées.
Documentation officielle : Garbage-First (G1) Garbage Collector (Oracle)