Cuando se asigna memoria a una JVM, entre el 10% y el 25% de la memoria es para el propio proceso JVM y el resto es para el código que se ejecuta en la JVM. Esto significa que una JVM a la que se le han asignado 4 GB puede tener sólo 3,5 GB disponibles para el código que se ejecuta en la JVM. Este recurso de memoria utilizado por la JVM suele denominarse overhead.