Подтвердить что ты не робот

Как запустить 32-разрядную Java на Mac OSX 10.7 Lion

Из моего опыта работы с 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 -version" все еще говорит:

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-битными версиями?

4b9b3361

Ответ 1

Я выяснил, что 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.

Ответ 2

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

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

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

Ответ 3

Перейдите в приложение "Настройки Java" и перетащите java 32 бит в начало списка.

Ответ 4

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

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

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

Ответ 5

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