Что делает флаг UseCompressedOops JVM и когда я должен его использовать?



что делает флаг hotspot JVM -XX:+UseCompressedOops как и когда я должен использовать его? Какие различия в производительности и использовании памяти я увижу при использовании его на 64-разрядном экземпляре Java (по сравнению с его неиспользованием)?

683   1  

1 ответ:

большинство точек доступа JVM в прошлом году были включены по умолчанию. Этот параметр позволяет использовать 32-разрядные ссылки в 64-разрядной JVM и получать доступ к 32 ГБ кучи. (более 32-битные указатели могут) (Вы также можете иметь почти неограниченную память кучи). Это позволяет сэкономить значительный объем памяти и повысить производительность.

Если вы хотите использовать эту опцию, я предлагаю вам обновить до версии, которая имеет его по умолчанию, поскольку, возможно, была веская причина, такая как ошибки, почему он не был включен ранее. Попробуйте Java 6 update 23 или Java 7 update 5.

короче говоря, не включайте его, используйте версию, которая имеет его по умолчанию.


обновление:

в Java 8 у вас есть возможность установить -XX:ObjectAlignmentInBytes= и в самом деле, если Вы размер кучи до 64 ГБ он будет использовать -XX:ObjectAlignmentInBytes=16 и по-прежнему использовать 32-битные ссылки.

Comments

    Ничего не найдено.