Memory alignment влияет на размер объекта в Java, увеличивая его. 5
По умолчанию виртуальная машина Java (JVM) добавляет к объекту достаточное количество заполнения, чтобы его размер был кратным 8. 3 Если объект меньше 8 байт, JVM заполняет его, чтобы заполнить оставшееся пространство после размещения заголовка объекта и данных экземпляра. 1
Например, если для класса SimpleLong установить параметр -XX:ObjectAlignmentInBytes=16, то размер экземпляра объекта составит 32 байта, хотя заголовок объекта и переменная long по-прежнему потребляют 20 байт. 3
Увеличение размера выравнивания может также позволить использовать сжатые ссылки на больших кучах, что снижает занимаемое пространство. 5 Однако во многих случаях это может ухудшить общий объём занимаемой памяти. 5 Чтобы определить, стоит ли увеличивать выравнивание, необходимо тщательно изучить конкретное приложение и набор данных. 5