Как запустить 32-битную Java на Mac OSX 10.7 Lion - PullRequest
21 голосов
/ 04 августа 2011

Исходя из моего опыта работы с Windows 7 (64-битной) и Java, 32-битная JRE использует меньше памяти и работает значительно быстрее, чем 64-битная JRE (при условии, что вам не нужно или не нужно иметь много памяти) ). Я думаю, что то же самое верно и для Mac OSX (и других платформ).

В настоящее время я использую OSX Lion (v10.7) и установил стандартное приложение Java. Под настройками Java я вижу «Java SE 6» от «Apple Inc.» для обоих типов процессоров "32-битный" и "64-битный" версия "1.6.0_26-b03-383". Я изменил предпочтительный порядок размещения 32-битной версии поверх 64-битной версии, надеясь, что это сделает 32-битную версию по умолчанию.

Но "Java-версия" все еще говорит:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)

Можно ли использовать 32-битную версию по умолчанию? И как?

Кроме того, есть ли у кого-нибудь опыт / сравнительные измерения скорости и эффективности памяти между 32/64-битными версиями?

Ответы [ 5 ]

21 голосов
/ 04 ноября 2011

Теперь я узнал, что 32-битная JVM может быть запущена явно с помощью ключа -d32.

На моей машине "java -version -d32" говорит:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c)
Java HotSpot(TM) Client VM (build 20.1-b02-383, mixed mode)

и хотя это не так, это 32-битная JVM.

7 голосов
/ 04 августа 2011

В последних версиях 64-разрядной версии Java по умолчанию включен -XX: + UseCompressedOops (если размер кучи меньше 32 ГБ).Это означает, что 32-битные ссылки используются в любом случае.Объекты все еще немного больше (на 4 байта больше)

В этой статье сравниваются 32-разрядные и 64-разрядные с UseCompressedOops Java: сколько памяти занимают разные массивы и коллекции

Что касается производительности, я нашел, что она составляет 5-10% в зависимости от того, что вы делаете.Если вы используете много значений long, то будет быстрее использовать 64-разрядные.

1 голос
/ 12 августа 2014

в /System/Library/Frameworks/JavaVM.framework/Versions Я нашел версию 1.6 установленной и изменил путь для java, javac, указав на /System/Library/Frameworks/JavaVM.framework/Versions/1.6/home, используя средупсевдоним, а не ссылка по умолчанию, найденная в / usr / bin /

1 голос
/ 13 октября 2011

Попробуйте следующие шаги:

  1. Откройте терминал и перейдите в /System/Library/Frameworks/JavaVM.framework/Versions/
  2. Введите ls -l, чтобы получить список всех доступных версий Java
  3. Введите sudo ln -fhsv CurrentJDK

Ссылка: Изменение версии Java

1 голос
/ 13 августа 2011

Перейдите в приложение «Java Preferences» и перетащите 32-разрядную версию Java в верхнюю часть списка.

...