Какое влияние, если таковые имеются, переключатель-d64 оказывает на Sun резидентным использованием памяти JVM?

простой, проверьте ExecutorCompletionService.

11
задан Dave Challis 3 April 2014 в 09:48
поделиться

1 ответ

Использование переключателя d64 переводит JVM в 64-битный режим. Технически, в Solaris / Linux и большинстве Unix-систем процесс JVM будет выполняться в модели LP64.

Модель LP64 отличается от 32-битной модели (ILP32) тем, что указатели составляют 64 в отличие от 32-битных указателей. Для JVM это позволяет повысить адресуемость памяти, но это также означает, что размер, занимаемый только ссылками на объекты, удвоился. Таким образом, в 32-битной и 64-битной JVM наблюдается большее раздувание одного и того же количества объектов в данный момент времени.

Еще одна вещь, о которой часто забывают, - это размер самих инструкций. В 64-битной JVM размер инструкций будет соответствовать размеру собственного машинного регистра.

Однако, если вы используете указатели сжатых объектов в 64-битной среде, JVM будет кодировать и декодировать указатели, когда это возможно, для размеров кучи более 4 ГБ. Вкратце, когда вы используете сжатые указатели, JVM пытается максимально использовать 32-битные значения.

Подсказка: включите флаг UseCompressedOops, используя -XX: + UseCompressedOops , чтобы избавиться некоторых наворотов. YMMV, но люди сообщают о снижении раздувания памяти до 50% при использовании сжатых файлов oops .

EDIT

Флаг UseCompressedOops поддерживается в версии 14.0 виртуальной машины Java HotSpot, доступной в Java 6 Update 14 и далее .

+ ИспользуйтеCompressedOops , чтобы избавиться от лишнего. YMMV, но люди сообщают о снижении раздувания памяти до 50% при использовании сжатых файлов oops .

EDIT

Флаг UseCompressedOops поддерживается в версии 14.0 виртуальной машины Java HotSpot, доступной в Java 6 Update 14 и далее .

+ ИспользуйтеCompressedOops , чтобы избавиться от лишнего. YMMV, но люди сообщают о снижении раздувания памяти до 50% при использовании сжатых файлов oops .

EDIT

Флаг UseCompressedOops поддерживается в версии 14.0 виртуальной машины Java HotSpot, доступной в Java 6 Update 14 и далее .

18
ответ дан 3 December 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: