GNU-kompilator för Java

GNU-kompilator för Java
Sorts Kompilator
Författare Cygnus Solutions [1]
Utvecklaren GNU-projekt
Operativ system Unix-liknande
Första upplagan 1998 [1] [2]
Hårdvaruplattform Java Virtual Machine
senaste versionen 6.5 / 26 oktober 2018 ( 4 december 2015 )
Licens GNU GPL
Hemsida gcc.gnu.org/gcc-6/
 Mediafiler på Wikimedia Commons

GNU Compiler for Java ( GCJ eller gcj ) är en gratis Java - språkkompilator som är en del av GNU Compiler Collection , men från och med 2017 underhålls den inte längre och kommer inte att ingå i framtida utgåvor.

GCJ kan kompilera Java -källkod till Java Virtual Machine-bytekod eller direkt till maskinkod på många processorarkitekturer . Den kan också kompilera klassfiler som innehåller bytekod, eller hela JAR:er som innehåller sådana filer, till maskinkod.

De flesta runtime-bibliotek som används av gcj kommer från GNU Classpath-projektet (jfr bibliotek libgcj ). Från och med gcj 4.3 är gcj integrerad av ecj, Eclipse Java-kompilatorn . [3]

Från och med 2007 har mycket arbete lagts ner på GNU Classpaths stöd för två Java-grafik- API :er : AWT och Swing . Support för AWT pågår, följt av support för Swing. [fyra]

Från och med 2009 har nya ändringar av gcj nästan upphört. [5] Produkten är för närvarande i underhållsläge.

Från och med 2015 har inga nya utvecklingar tillkännagivits från GCJ och produkten var i underhållsläge, där utvecklingen av Java-verktygssatsen med öppen källkod huvudsakligen skedde i OpenJDK. GCJ togs bort från GCC-stammen den 30 september 2016. Tillkännagivandet om borttagandet gjordes med lanseringen av GCC 7.1, som inte innehåller det. GCJ förblir en del av GCC 6.

Prestanda

Java-kod som kompileras till inbyggd kod med GCJ bör ha en snabbare starttid än motsvarande bytekod som körs i JVM [6] .

Men när Java väl körs, kommer kod kompilerad av GCJ inte nödvändigtvis att köras snabbare än bytekod som exekveras av en modern, JIT -aktiverad JVM . Detta gäller även när GCJ anropas med avancerade optimeringsalternativ som -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Huruvida det kompilerade programmet kan överträffa JVM eller inte beror på de specifika operationerna som utförs av koden [7] .

Program som använder GNU-kompilatorn för Java

Se även

Anteckningar

  1. 1 2 https://gcc.gnu.org/wiki/GCJ
  2. https://gcc.gnu.org/news/gcj-announce.txt
  3. gcj för att använda Eclipse-kompilatorn som en frontend (nedlänk) (8 januari 2007). Hämtad 20 maj 2007. Arkiverad från originalet 2 maj 2012.  
  4. GCJ FAQ - GNU Project - Free Software Foundation (FSF) . Hämtad 11 juli 2010. Arkiverad från originalet 15 januari 2016.
  5. GCJ: Nyheter arkiverade 18 april 2008.
  6. GCJ: GNU Static Java Compiler (nedlänk) . Hämtad 11 juli 2010. Arkiverad från originalet 7 juni 2011. 
  7. GCJ vs Java JIT Performance Comparison (nedlänk) . Hämtad 11 juli 2010. Arkiverad från originalet 25 februari 2017. 

Länkar