GNU Compiler for Java | это... Что такое GNU Compiler for Java? (original) (raw)
GNU Compiler for Java
Тип | Компилятор |
Разработчик | Проект GNU |
Операционная система | Unix-like |
Последняя версия | 4.5.0 (4 апреля 2010) |
Лицензия | GNU GPL |
Сайт | http://gcc.gnu.org/java |
GNU Compiler for Java (GCJ или gcj) — это свободный компилятор языка Java, являющийся частью GNU Compiler Collection.
GCJ может компилировать исходный код Java в байткод виртуальной машины Java, либо непосредственно в машинный код многих процессорных архитектур. Он также может компилировать файлы классов, содержащие байткод, или целые JAR, содержащие такие файлы, в машинный код.
Большинство runtime-библиотек, используемых gcj, взято из проекта GNU Classpath (ср. библиотеку libgcj
). По состоянию на gcj 4.3, gcj интегрируется ecj, Java-компилятором Eclipse.[1]
По состоянию на 2007 год много работы ушло на поддержку в GNU Classpath двух графических Java API: AWT и Swing. Работа по поддержке AWT продолжается, после чего последует поддержка Swing.[2]
По состоянию на 2009 год новые изменения в gcj почти остановлены.[3] Продукт в настоящее время находится в режиме обслуживания.
Содержание
- 1 Производительность
- 2 Использующие GNU Compiler for Java программы
- 3 См. также
- 4 Примечания
- 5 Ссылки
Производительность
Java-код, скомпилированный в машинный код с помощью GCJ, должен иметь более быстрое время запуска, чем эквивалентный байт-код, запущенный в JVM[4].
Однако, после запуска Java код, скомпилированный GCJ, не обязательно будет выполняться быстрее, чем байт-код, выполняемый современной JVM с включённым JIT. Это справедливо даже тогда, когда GCJ вызывается с продвинутыми опциями оптимизации, такими как -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native. Сможет ли скомпилированная программа превзойти по производительности JVM или нет, зависит от конкретных операций, выполняемых кодом[5].
Использующие GNU Compiler for Java программы
См. также
- GNU Interpreter for Java (GIJ)
- IcedTea
- Kaffe
- SableVM
- JamVM
- Apache Harmony
- Jikes
- C to Java Virtual Machine compilers
- Свободные реализация Java
Примечания
- ↑ gcj to use Eclipse compiler as a front end (8 января 2007). Архивировано из первоисточника 2 мая 2012. Проверено 20 мая 2007.
- ↑ The GCJ FAQ — GNU Project — Free Software Foundation (FSF)
- ↑ GCJ: News
- ↑ GCJ: The GNU Static Java Compiler
- ↑ GCJ vs Java JIT Performance Comparison
Ссылки
- gcc.gnu.org/java/ — официальный сайт GNU Compiler for Java
- GCJ Manual
- About CNI section of GCJ Manual
- GCJ Frequently Asked Questions
- LWN: GCJ — past, present, and future — the article discuss some history of GCJ.
Виртуальные машины Java | |
---|---|
Sun/Oracle | JVM • HotSpot • KVM • OpenJDK • Maxine VM |
Сообщества и основные реализации | Apache Harmony • GCJ • JamVM • Jikes RVM • Kaffe • IKVM.NET • IBM J9 • JRockit (BEA/Oracle) |
Встроенные | Mysaifu • Squawk (Sun) • JamaicaVM • Mika VM |
Другие | CACAO • JX • JNode • другие… |
Неподдерживаемые | Microsoft JVM • SableVM • Jupiter • Jaos |
Java | ||
---|---|---|
Платформы | Java Card • Java ME • Java SE • Java EE | |
Технологии Sun | Java • Java Development Kit • OpenJDK • WTK • Java Virtual Machine • JavaFX • JAXP • Squawk | |
Основные сторонние технологии | GNU Classpath • GNU компилятор для Java • Kaffe • TopLink • Apache Harmony • Apache Struts • Spring Framework • Dalvik • Hibernate • JBoss • Processing • Dozer • AspectJ | |
История | История версий Java • Критика Java • Java Community Process • Sun Microsystems • Свободные реализации Java | |
Свойства языка | Байткод • Синтаксис • Апплеты • Сервлеты • Мидлеты • JavaServer Pages • Web Start • Enterprise JavaBeans | |
Скриптовые языки | Java Tcl • Jython • JRuby • BeanShell • Groovy • Judoscript • Sleep • Bean Scripting Framework • Yoix • Rhino | |
Конференции Java | JavaOne |