Есть ли JDK с JIT-компилятором?

OpenJDK успешно компилируется и запускается на Pi, но единственная версия, которую я нашел, - это без JIT. Oracle предоставляет такой JDK для других версий ARM, но не ARMv6. Есть ли способ получить такую ​​версию JDK и тем временем?

24 голоса | спросил berry120 13 J0000006Europe/Moscow 2012, 01:53:08

6 ответов


15

Теперь Oracle выпустила (с Java 7u6) JDK с JIT, который работает на Pi с полной поддержкой AWT /Swing. Он также поддерживает JVMTI (у cacao только частичная поддержка.) Пресс-релиз здесь .

Я проверил, что он работает с Greenfoot и обеспечивает огромное ускорение по сравнению с подобными простому (не- JIT) OpenJDK build.

На момент написания он не поддерживает жесткую с плавающей запятой и поэтому не будет работать с такими дистрибутивами, как Raspbian, которые используют только hard float - это, однако, планируется для будущей версии.

UPDATE: Как отметил Даррен, версия для жесткого плавания теперь выпущена для ARM в виде предварительного просмотра JDK8, вы можете найти ее здесь .

ОБНОВЛЕНИЕ 2: Hard float теперь поддерживается в JDK7.

ответил berry120 16 PM00000060000001831 2012, 18:31:18
6

Пакет icedtea-6-jre-cacao содержит компилятор JIT и, как сообщается, работает на RasPi .

Я сам не пробовал.

ответил finnw 14 J0000006Europe/Moscow 2012, 22:43:58
4

Теперь Oracle выпустила предварительный просмотр Java JDK8 для ARM, который специально включает поддержку жесткого плавающего Raspbian на Pi. Он работает, и я нашел его примерно в 20 раз быстрее, чем OpenJDK для определенных вычислений с плавающей запятой. http://jdk8.java.net/fxarmpreview/

ответил darrenjw 20 ThuEurope/Moscow2012-12-20T13:17:33+04:00Europe/Moscow12bEurope/MoscowThu, 20 Dec 2012 13:17:33 +0400 2012, 13:17:33
3

В Rasbian вы можете использовать JamVM, который включает в себя «кодовое копирование-JIT»

apt-get install icedtea-7-jre-jamvm

JamVM в настоящее время является самой быстрой и стабильной JVM, которая включает JIT в Rasbian.

Avian также поддерживается на Rasbian, который также включает JIT. Вам придется его вручную создать: http://labb.zafena.se/?p=630

Я ожидаю, что Avian появится в Raspbian, когда он был создан из источника SID Debian. В настоящее время Avian существует в экспериментах SID Debian внутри пакета jvm-7-avian-jre.

Оба Avian и JamVM работают в сочетании с классами OpenJDK-7, поэтому вы можете использовать их для ускорения всех java-пусковых установок, таких как javac и java. файл /etc/java-7-openjdk/jvm-armhf.cfg определяет, какой JVM будет использоваться по умолчанию внутри openjdk 7 на Rasbian.

Вы также можете указать java-пусковым установкам, какие jvm использовать:

java -jamvm

javac -J-jamvm
ответил Xerxes Rånby 27 +04002012-10-27T13:55:15+04:00312012bEurope/MoscowSat, 27 Oct 2012 13:55:15 +0400 2012, 13:55:15
2

Oracle выпустила полную версию (без предварительного просмотра) Java 8 и Java 7 для архитектуры ARM малины Pi: ссылка на Java 8 .

Вы также можете использовать из командной строки:

sudo apt-get update
sudo apt-get install oracle-java8-jdk
ответил Simulant 22 Maypm14 2014, 13:36:40
1

Можно комбинировать OpenJDK 7 с JVM с Java JDK8, который включает JIT, чтобы получить настройку с поддержкой X11 и Swing /AWT.

Интерфейс JNI с исключением «Classpath» четко разделяет классы среды JVM и среды выполнения. Если вы используете клиентский Hotspot (jre /lib /arm /client /libjvm.so) из предварительного просмотра JavaFX 8 в сочетании с Rasbian скомпилированными классами среды разработки OpenJDK 7 и java-пусковыми установками (/usr /lib /jvm /java-7- openjdk-armhf), вы получите следующую настройку и преимущества:

  • Hotspot Client JIT (из предварительного просмотра JavaFX 8)
  • Поддержка Swing /AWT (с использованием классов OpenJDK из пакета openjdk-7-jre)
  • поддержка импульсного аудио (IcedTea pulse-java из пакета openjdk-7-jre и openjdk-7-jre-headless)
  • поддержка апплета веб-браузера с использованием icedtea-web (из пакета icedtea-7-plugin)
  • JNLP javaws запуска с использованием icedtea-web (из пакета icedtea-7-plugin)
  • автообнаружение JNI armhf с помощью java-пусковых установок OpenJDK (java-пусковые установки OpenJDK добавляет путь к конкретной системе библиотеки armhf в java.library.path). Путем включения пути /usr /lib /arm-linux-gnueabihf в java.library.path позволяет java-библиотекам, таким как библиотека GPIO Pi4J и JogAmp gluegen-rt JOGL /JOAL, правильно определить, что он работает в системе Linux armhf а затем загрузите реализацию JNI armhf вместо реализации JNI armel.
  • Поддержка обработки и печати изображений в приложениях сервера JavaEE, таких как glassfish и tomcat, с использованием классных классов OpenJDK.

Настройка:

Загрузите jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz из http://jdk8.java.net/fxarmpreview/index.html

# Install openjdk-7 and the icedtea-web browser plugin
sudo apt-get install openjdk-7-jdk icedtea-7-plugin
# Extract the Oracle Client Hotspot JVM from the JavaFX 8 preview
tar --extract --verbose --file=jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz jdk1.8.0/jre/lib/arm/client
# Place the client hotspot dir containing the libjvm.so inside the OpenJDK 7 jre/lib/arm folder
sudo mv jdk1.8.0/jre/lib/arm/client /usr/lib/jvm/java-7-openjdk-armhf/jre/lib/arm/oracle
# Configure the OpenJDK Runtime to use the Oracle client Hotspot JVM dir
# This sed command places -oracle KNOWN at the first line of jvm-armhf.cfg
sudo sed -i -e "1i\\-oracle KNOWN" /etc/java-7-openjdk/jvm-armhf.cfg

java -version
java version "1.7.0_07" <--- This is the OpenJDK 7 Update version
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1+rpi1) <--- This is the   OpenJDK 7 Runtime version
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode) <--- This is the Oracle Client Hotspot JVM version
ответил xranby 21 FriEurope/Moscow2012-12-21T22:29:33+04:00Europe/Moscow12bEurope/MoscowFri, 21 Dec 2012 22:29:33 +0400 2012, 22:29:33

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132