java-heap

Недавно узнал интересную вещь:  «В случае 64-разрядного процесса размер некоторых полей данных в Java-объектах — в частности, метаданных объекта и любых полей, которые указывают на другой объект, — также необходимо увеличить до 64 битов. Размеры других типов полей данных — таких как intbyte или long — не меняются.»(c) Крис Бэйли

А это значит следующее:  Если ваше java приложение отлично работало в 32-х битной системе и кушало хипа в районе 1 гб. То в 64-х битной системе это же уже приложение будет кушать 1.7 гига. Прирост в размере используемого хипа ~ 70%. Такие дела.

Но!  IBM и Oracle джава машины имеют две хитрые опции, которые позволяют избежать такого расточительства.

  • -Xcompressedrefs - сжимать ссылки 
  • -XX:+UseCompressedOops - сжимать указатели обычных объектов(OOP)

Иногда я использую данные опции при запуске Jmeter’а, в тех случаях когда мне критически не хватает размера кучи.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс