Повышение производительности Java Hotspot VM: сжатые нулевые указатели на обычные объекты
Когда JVM использует сжатые обычные указатели объектов (oops) в 64-разрядном процессе JVM, программное обеспечение JVM отправляет запрос операционной системе на резервирование памяти для кучи Java, начиная с нулевого виртуального адреса. Если операционная система поддерживает такой запрос и может зарезервировать память для кучи Java по нулевому виртуальному адресу, то используются сжатые значения, основанные на нуле.
Когда используются сжатые значения, основанные на нуле, 64-битный указатель может быть декодирован из 32-битного смещения объекта без включения базового адреса кучи Java. Для размеров кучи менее 4 гигабайт программное обеспечение JVM может использовать смещение байта вместо смещения объекта и, таким образом, также избежать масштабирования смещения на 8. Соответственно, эффективно кодирование 64-битного адреса в 32-битное смещение.
Для кучи Java размером до 26 гигабайт операционные системы Linux и Windows обычно могут выделять кучу Java по нулевому виртуальному адресу.
Читайте также:
- Повышение производительности Java Hotspot VM: сжатый указатель на обычный объект
- Повышение производительности Java Hotspot VM: многоуровневая компиляция
- Повышение производительности Java Hotspot VM: компактные строки
Комментарии
Отправить комментарий