GNU Compiler til Java

GNU Compiler til Java
Type Kompiler
Forfatter Cygnus Solutions [1]
Udvikler GNU projekt
Operativ system Unix-agtig
Første udgave 1998 [1] [2]
Hardware platform Java virtuel maskine
nyeste version 6.5 / 26. oktober 2018 ( 4. december 2015 )
Licens GNU GPL
Internet side gcc.gnu.org/gcc-6/
 Mediefiler på Wikimedia Commons

GNU Compiler for Java ( GCJ eller gcj ) er en gratis Java -sprog- compiler , der er en del af GNU Compiler Collection , men fra 2017 vedligeholdes den ikke længere og vil ikke være en del af fremtidige udgivelser.

GCJ kan kompilere Java -kildekode til Java Virtual Machine bytecode eller direkte til maskinkode på mange processorarkitekturer . Det kan også kompilere klassefiler, der indeholder bytekode, eller hele JAR'er , der indeholder sådanne filer, til maskinkode.

De fleste af runtime-bibliotekerne, der bruges af gcj, kommer fra GNU Classpath-projektet (jf. bibliotek libgcj ). Fra gcj 4.3 er gcj integreret af ecj, Eclipse Java-kompileren . [3]

Fra 2007 er der gået meget arbejde i GNU Classpaths understøttelse af to Java-grafik- API'er : AWT og Swing . Support til AWT er løbende, efterfulgt af support til Swing. [fire]

Fra 2009 er nye ændringer af gcj næsten stoppet. [5] Produktet er i øjeblikket i vedligeholdelsestilstand.

Fra 2015 er der ikke blevet annonceret nye udviklinger fra GCJ, og produktet var i vedligeholdelsestilstand, hvor udviklingen af ​​open source Java-værktøjssættet primært fandt sted i OpenJDK. GCJ blev fjernet fra GCC-stammen den 30. september 2016. Annonceringen af ​​dens fjernelse blev lavet med udgivelsen af ​​GCC 7.1, som ikke indeholder den. GCJ forbliver en del af GCC 6.

Ydeevne

Java-kode kompileret til indbygget kode ved hjælp af GCJ bør have en hurtigere opstartstid end den tilsvarende bytekode, der kører i JVM [6] .

Men når først Java kører, vil kode kompileret af GCJ ikke nødvendigvis køre hurtigere end bytekode udført af en moderne, JIT -aktiveret JVM . Dette er sandt, selv når GCJ påkaldes med avancerede optimeringsmuligheder såsom -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Hvorvidt det kompilerede program kan overgå JVM eller ej, afhænger af de specifikke operationer, der udføres af koden [7] .

Programmer, der bruger GNU Compiler til Java

Se også

Noter

  1. 1 2 https://gcc.gnu.org/wiki/GCJ
  2. https://gcc.gnu.org/news/gcj-announce.txt
  3. gcj for at bruge Eclipse-kompileren som en frontend (downlink) (8. januar 2007). Hentet 20. maj 2007. Arkiveret fra originalen 2. maj 2012.  
  4. GCJ FAQ - GNU Project - Free Software Foundation (FSF) . Hentet 11. juli 2010. Arkiveret fra originalen 15. januar 2016.
  5. GCJ: Nyheder arkiveret 18. april 2008.
  6. GCJ: GNU Static Java Compiler (downlink) . Hentet 11. juli 2010. Arkiveret fra originalen 7. juni 2011. 
  7. Sammenligning af GCJ vs Java JIT-ydelse (downlink) . Hentet 11. juli 2010. Arkiveret fra originalen 25. februar 2017. 

Links