Fråga:
Finns det en JDK med en JIT-kompilator tillgänglig?
berry120
2012-06-13 02:53:09 UTC
view on stackexchange narkive permalink

OpenJDK kompilerar och körs på Pi framgångsrikt, men den enda versionen jag hittat är en utan JIT. Oracle tillhandahåller en sådan JDK för andra versioner av ARM, men inte ARMv6. Finns det något sätt att få en sådan version av JDK igång under tiden?

Vad är distro?
Debian klämmer för närvarande, även om jag inte är alltför orolig för att ändra om detta skulle hjälpa situationen!
Kan du inte installera OpenJDK-versionen i den officiella repo?
@Jivings Yup, det är vad jag använder just nu. Men den versionen kommer inte med en JIT (därav frågan!)
Tyvärr :) Jag har ingen aning om varför det inte har JIT då. Verkar ett konstigt beslut, har du hittat några skäl för det?
@Jivings Om jag var tvungen att gissa, skulle jag säga att det inte är en trivial uppgift att skapa en JIT eftersom optimeringarna är potentiellt något annorlunda för varje plattform / arkitektur. Men det är bara en gissning :-)
Sex svar:
#1
+16
berry120
2012-08-16 19:31:18 UTC
view on stackexchange narkive permalink

Oracle har nu släppt (från och med Java 7u6) en JDK med JIT som fungerar på Pi med fullt AWT / Swing-stöd. Det stöder också JVMTI (kakao har endast delvis stöd.) Pressmeddelande här.

Jag har verifierat att det fungerar med Greenfoot och ger en enorm hastighet jämfört med sådana som en vanlig (icke-JIT) OpenJDK-byggnad.

I skrivande stund stöder den inte hård flytpunkt och fungerar därför inte med distributioner som Raspbian som bara använder hård float - detta är dock planerat för en framtida release.

UPPDATERING: Som Darren påpekade har nu en hard float-version släppts för ARM i form av en JDK8-förhandsvisning släpp, du hittar den här.

UPPDATERING 2: Hård float stöds nu i JDK7.

Vilka distributioner stöder den?
@Zoot Jag har använt det med Debian squeeze fine - det borde stödja alla Linux-distributioner som kan använda softfloat.
#2
+7
finnw
2012-06-14 23:43:58 UTC
view on stackexchange narkive permalink

icedtea-6-jre-cacao -paketet innehåller en JIT-kompilator och enligt uppgift fungerar på RasPi.

Jag har inte provat det mig själv.

Är det inte bara JRE snarare än JDK?
@berry120: Det är i JRE som JIT behövs. Det borde inte spela någon roll om en JIT var i bruk när programmet sammanställdes.
Ah, bra poäng. Ger ett försök :-)
Cacao JIT verkar inte fungera ordentligt, åtminstone på Raspbian, och det verkar inte finnas en enkel fix.
#3
+5
Darren Wilkinson
2012-12-20 15:17:33 UTC
view on stackexchange narkive permalink

Oracle har nu släppt en förhandsgranskning av Java JDK8 för ARM för utvecklare som specifikt innehåller stöd för Raspbian på PI. Det fungerar, och jag har funnit att det är cirka 20 gånger snabbare än OpenJDK för vissa flytande punktintensiva beräkningar. http://jdk8.java.net/fxarmpreview/

Du slog mig till det! Jag skulle precis lägga upp det :-)
#4
+4
Xerxes Rånby
2012-10-27 14:55:15 UTC
view on stackexchange narkive permalink

På Rasbian kan du använda JamVM som innehåller en "kodkopiering-JIT"

  apt-get install icedtea-7-jre-jamvm  

JamVM är för närvarande den snabbaste och mest stabila JVM som inkluderar en JIT på Rasbian.

Avian stöds också på Rasbian som också innehåller en JIT. Du måste bygga den manuellt: http: / /labb.zafena.se/?p=630

Jag förväntar mig att Avian ska visas på Raspbian när den har byggts från Debian SID-källa. Avian finns för närvarande i Debian SID-experiment i paketet jvm-7-avian-jre .

Både Avian och JamVM fungerar i kombination med OpenJDK-7-klasserna så att du kan använda dem både för att påskynda alla java-startare som javac och java. filen /etc/java-7-openjdk/jvm-armhf.cfg bestäm vilken JVM som används som standard i openjdk 7 på Rasbian.

Du kan också berätta för java-startarna individuellt vilken jvm som ska användas:

  java -jamvmjavac -J-jamvm  
#5
+2
Simulant
2014-05-22 14:36:41 UTC
view on stackexchange narkive permalink

Oracle släppte den fullständiga versionen (inte längre förhandsgranskning) av Java 8 och Java 7 för ARM-arkitekturen i Raspberry Pi: länk till Java 8.

Du kan också använd från kommandoraden:

  sudo apt-get updatesudo apt-get install oracle-java8-jdk  
#6
+1
xranby
2012-12-22 00:29:34 UTC
view on stackexchange narkive permalink

Det är möjligt att kombinera OpenJDK 7 med JVM från Java JDK8 som inkluderar en JIT för att få en installation med X11-stöd och Swing / AWT fungerar.

JNI-gränssnittet, med "Classpath" -undantag, separera tydligt JVM- och runtime-miljöklasserna. Om du använder klienthotspot (jre / lib / arm / client / libjvm.so) från förhandsgranskningen JavaFX 8 i kombination med de Rasbian-kompilerade OpenJDK 7 Runtime-miljöklasserna och Java-startare (/ usr / lib / jvm / java-7- openjdk-armhf) får du följande inställningar och fördelar:

  • Hotspot Client JIT (från förhandsgranskningen JavaFX 8)
  • Swing / AWT-stöd (med OpenJDK-klasserna från paketet openjdk-7-jre)
  • stöd för puls-ljud (IcedTea puls-java från openjdk-7-jre och openjdk-7-jre-headless-paketet)
  • webb- webbläsarapplet stöd med icedtea-web (från icedtea-7-plugin-paketet)
  • en JNLP javaws launcher med icedtea-web (från icedtea-7-plugin-paketet)
  • armhf JNI-autodetektion av OpenJDK java-startare (OpenJDK java-launchers lägger till den armhf-specifika systembiblioteksökvägen i java.library.path). Genom att inkludera sökvägen / usr / lib / arm-linux-gnueabihf i java.library.path kan java-bibliotek som Pi4J GPIO-biblioteket och JogAmp gluegen-rt JOGL / JOAL korrekt upptäcka att det körs på ett armhf linux-system och ladda sedan armhf JNI-implementeringen istället för JNI-implementeringen av armel.
  • Stöd för bildbehandling och utskrift i JavaEE-serverapplikationer, som glasfisk och tomcat, med hjälp av OpenJDK-klasserna.

Inställning:

Ladda ner jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz från http://jdk8.java.net/fxarmpreview/ index.html

  # Installera openjdk-7 och icedtea-webbläsar-pluginsudo apt-get install openjdk-7-jdk icedtea-7-plugin # Extrahera Oracle Client Hotspot JVM från förhandsgranskningen JavaFX 8 --extract --verbose --fil = jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz jdk1.8.0 / jre / lib / arm / client
# Placera klientens hotspot dir som innehåller libjvm.so inuti OpenJDK 7 jre / lib / arm mappar sudo mv jdk1.8.0 / jre / lib / arm / client / usr / lib / jvm / java-7-openjdk-armhf / jre / lib / arm / oracle # Konfigurera OpenJDK Runtime för att använda Oracle-klienten Hotspot JVM dir # Detta sed-kommando placerar -oracle KNOWN vid första raden i jvm-armhf.cfgsudo sed -i -e "1i \\ - oracle KNOWN" / etc / java-7-openjdk / jvm-armhf.cfgjava -versionjava version "1.7.0_07" < --- Detta är OpenJDK 7-uppdateringsversionen OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1 + rpi1 ) < --- Detta är OpenJDK 7 Runtime-version Java HotSpot (TM) Client VM (bygg 25.0-b04, blandat läge) < --- Detta är Oracle Client Hotspot JVM-version  


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...