Есть ли распределенный компилятор для Java, аналогичный distcc для C/C++?Распределенный Java-компилятор
ответ
Прямой ответ на ваш вопрос - «нет». Тем не менее, это, вероятно, вам все равно не поможет ... компиляция Java происходит очень быстро.
В небольшом проекте компиляция достаточно быстра, чтобы вас не волновало. В большом проекте вам нужно будет сбрасывать файл для компиляции по сети, а также иметь дело с потенциально также метать и многие мегабайты зависимостей.
Одна вещь, которую вы можете сделать, чтобы улучшить скорость компиляции, - использовать eclipse compiler вместо Sun javac. Компилятор Eclipse является многопоточным, и, к счастью, он будет использовать все ядра вашей машины.
Возможно, стоит упомянуть и о том, что Apple также недавно reduced distcc support, так как в целом на более новом аппаратном обеспечении требуется больше времени, чтобы получить код в другом месте для компиляции и возврата, чем это было сделано только для компиляции локально. Процитировать Apple:
Производительность Xcode с одним компьютером улучшена до такой степени, что распределенное здание с распределенными сетевыми сборками происходит медленнее, чем локальные сборки в большинстве случаев.
Хороший совет. Это также связано с ответом Карола Вилка, так как я считаю, что внутренний компилятор Eclipse и jikes по крайней мере несколько взаимосвязаны, т. Е. Происходят из (возможно) общего кода. Компилятор Eclipse «обманывает» путем компиляции поэтапно, и я думаю, что jikes знает, как это сделать. –
Jikes написан на C++, ecj - Java, поэтому, вероятно, это не обычный код. –
@Carl, ecj был написан на основе опыта Jikes. Рад, что они сделали - джавак нуждался в конкуренции. –
Возможно, Jikes будет работать на вас. Вы можете добиться очень похожих эффектов с помощью умного скрипта ant и nfs, например файловой системы ...
Разве Java не должна компилироваться после запуска в любом месте? –
@ Ipthnc - что заставляет вас думать, что это не так? и как это относится к вопросу? –
Если вы раздражены долго ждать для Java компилируется, то вы могли бы рассмотреть одно из следующих действий:
- разбить проект на несколько файлов JAR (в иерархической зависимости). Если повезет, ваши изменения повлияют только на источник в одной из этих банок, в то время как другие могут продолжать работать в качестве зависимостей.
- разорвать ваш проект на группы источников, возможно, по пакету, и использовать Apache ant для координации вашего компиляции. Я всегда был слишком ленив, чтобы использовать его, но вы можете настроить явное управление зависимостями, чтобы избежать повторной компиляции файлов, для которых файлы
.class
уже существуют и новее источника. Усилия, которые прилагаются к настройке один раз, могут получить дивиденды в течение нескольких дней, если проект большой, а компиляторы сильно пережевывают ваше время.
В отличие от мульти-вырезание, уменьшая количество кода, что вам нужно перекомпилировать также уменьшить потребление энергии вашего компьютера и углеродный след;)
... предполагая, что ваш компьютер получает энергию от ископаемого топлива –
Я думаю параллельный сборник независимых модулей Maven должен быть довольно простым с использованием некоторых простых скриптов - просто вытащите из контроля версий, измените каталог и запустите mvn clean compile. Добавьте mvn deploy, чтобы получить артефакт в репозиторий артефактов.
Это должно работать даже с зависимыми модулями, однако для синхронизации потребуется некоторая работа.
я написал начало одного для java6
http://www.pointdefence.net/jarc/index.html
Он распространен в задаче Java компилятор. Таким образом, это будет хорошо работать с параллельной компиляцией независимых модулей Maven.
- 1. HBase Pseudo распределенный или полностью распределенный режим?
- 2. Распределенный python
- 3. динамически распределенный переменный размер
- 4. Какой распределенный кеш?
- 5. Hadoop распределенный режим
- 6. Pig Распределенный кеш
- 7. Распределенный характер Memcached
- 8. Дельфи распределенный отказ здания
- 9. Распределенный ресурс в Rails
- 10. Распределенный CRON в Кубернете
- 11. Распределенный запрос в Virtuoso
- 12. Распределенный кеш в hadoop
- 13. Горизонтально распределенный динамический контент
- 14. R Распределенный пакет кластеризации
- 15. Распределенный кеш - основные понятия
- 16. Равномерно распределенный случайный
- 17. Распределенный планировщик Oozie
- 18. Распределенный хранилище данных
- 19. Распределенный 3D-рендеринг
- 20. Распределенный магазин с транзакциями
- 21. Распределенный тест JMeter
- 22. Распределенный кеш Hadoop
- 23. Распределенный кеш в .net
- 24. Распределенный поиск в SOLR
- 25. Распределенный вопрос ETL
- 26. HBase распределенный режим
- 27. распределенный интеграционный шаблон предприятия
- 28. Эффективный распределенный подсчет
- 29. Распределенный кеш не работает
- 30. MapReduce распределенный редуктор
У вас есть требование для одного или это просто любопытство? – skaffman
Я хочу написать один. – Boolean
Удачи! Помните те моменты, которые я поднимаю в своем ответе, и я желаю вам удачи в написании этого. –