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