У нас есть приложение, работающее на Mac с java 1.5. Это 32-битная виртуальная машина. Память кучи находится в пределах лимита. Когда мы переносим это приложение в Linux с java 1.5. (64-разрядная версия), мы видим увеличение использования памяти на 50%. Будет ли объем памяти, занимаемый jvm, быть таким большим в Linux? Есть ли у нас патч для того же самого в Linux?
Для 64-битных приложений вполне обычно требуется больше памяти, чем для 32-битных (большие переменные, указатели и т. Д.). Это, а также различная реализация JVM между двумя системами вполне может быть причиной.
Я лично не считаю это вообще странным, поэтому я бы не стал рассматривать это как проблему, если только использование памяти не начало расти как сумасшедшие, возникла подобная проблема с производительностью.
В 64-битной среде все указатели занимают вдвое больше места. длинные целые числа тоже могут, но я думаю, что они уже 64-битные в обоих случаях.
Насколько это влияет на вас, зависит от вашего конкретного случая, любая ссылка на объект является указателем. Если ваши объекты в основном являются ссылками на другие объекты, они будут взорваны.
Для Linux существуют 32-битные сборки JVM. Плохая новость заключается в том, что как только вы перерастете 32-разрядную версию, вы перейдете с 2-3 ГБ до 4-6 ГБ, чтобы быть на одном уровне.