Why does a 64-bit JVM require 12 bytes of a header compared to 8 bytes in a 32-bit JVM?

Recently, I read that at a 64-bit memory level, in a memory layout in a 64-bit architect, 30-50% more heap is required.

This includes

1. The header of an object that has 12 bytes on a 64-bit JVM, which adds some overhead compared to 8 bytes in the headers on a 32-bit

  1. References to objects can be either 4 bytes or 8 bytes in 64-bit mode. While the 32-bit bit is 4 bytes.

My question is: why do we need 12 bytes of the header in a 64-bit JVM, what's the difference? and so for the Reference Reference, too WHY?

+4
source share

Source: https://habr.com/ru/post/1583811/


All Articles