Подсказки для ускорения времени изготовления на Linux с помощью МУРАВЬЯ, Javacc, JUnit и компилируя классы Java

Проблема, кажется, здесь

let direction;

//add event to read users input then change direction
document.addEventListener('keydown', (e) => {
    if(e.keyCode == 37 && direction != 'right') direction = 'left';
    else if (e.keyCode == 38 && direction != 'down') direction = 'up';
    else if (e.keyCode == 39 && direction != 'left') direction = 'right';
    else if (e.keyCode == 40 && direction != 'up') direction = 'down';
})

В этом случае направление undefined, поэтому никакое значение не будет присвоено direction

5
задан Craig Angus 28 September 2008 в 22:59
поделиться

7 ответов

Одно быстрое исправление, которое могло бы побрить некоторое свободное время, должно гарантировать выполнение Муравья с помощью сервера JVM (по умолчанию, это использует клиент VM). Набор ANT_OPTS для включения "-сервер".

3
ответ дан 14 December 2019 в 04:51
поделиться

Теперь, когда Вы объяснили процесс более подробно, вот еще две опции:

  1. Выделенная машина/кластер, где сборка выполняется намного более быстрая, чем на нормальной рабочей станции. Разработчики были бы затем перед фиксацией, запустите скрипт, который создает их код выделенной машины/кластера.

  2. Измените разделение в подпроекты так, чтобы было более трудно повредить один проект путем изменения другого. Это должно затем сделать менее важным сделать полную сборку перед каждой фиксацией. Только фиксации, которые касаются чувствительных подпроектов или тех, которые охватывают несколько проектов, должны были бы затем быть "проверены" посредством полной сборки.

1
ответ дан 14 December 2019 в 04:51
поделиться

Попробуйте быть вдохновленными прагматически настроенным программистом. Скомпилируйте только, что необходимо, имейте два или больше набора тестов. Один для быстрых тестов, другого для полных тестов. Рассмотрите, существует ли реальная потребность использовать каждый шаг сборки каждый раз. Это необходимая попытка использовать jikes компилятор вместо javac. После того, как проект охватывает несколько сотен классов, которые я переключаю на jikes для улучшения скорости. Но знайте о потенциальных проблемах несовместимости. Не забывайте включать один, все в одной цели для выполнения каждого шага с полным восстанавливают и полный тест проекта.

1
ответ дан 14 December 2019 в 04:51
поделиться
  • Представьте процесс сборки и посмотрите, где узкие места. Это может дать Вам некоторое представление относительно того, как улучшить процесс.
  • Попытайтесь разработать независимые проекты параллельно на многоядерных машинах / машинах ЦП. Как расширение этой идеи, можно хотеть навести справки о Java, эквивалентном из distcc (не знайте, существует ли это) распределять сборку по многим машинам.
  • Получите лучшие машины.
2
ответ дан 14 December 2019 в 04:51
поделиться

Что является разбивкой, вовремя потраченной:

  1. генерация классов
  2. компиляция классов
  3. запущение тестов

В зависимости от Вашего проекта можно видеть значительные увеличения во время изготовления путем выделения большего размера "кучи" javac (memoryMaximumSize) и junit (maxmemory).

0
ответ дан 14 December 2019 в 04:51
поделиться

Действительно ли очень важно, чтобы вся сборка продлилась меньше чем 10 минут? При создании подпроектов независимыми друг от друга Вы могли бы работать над одним подпроектом, в то время как уже скомпилировавший другие (думают, что Знаток или Ivy управляют зависимостями).

Другое решение (и если Ваши модули довольно стабильны) состоит в том, чтобы рассматривать Ваши подпроекты как автономные проекты. Каждый проект затем следовал бы за их собственным циклом выпуска и был бы доступен из локального репозитория Знатока/Плюща. Это, конечно, работает хорошо, если, по крайней мере, части проекта довольно стабильны.

0
ответ дан 14 December 2019 в 04:51
поделиться

Это, вероятно, не помогло бы в очень ближайшем времени, но полагало, что я должен бросить его там так или иначе.

Если Ваш проект вскрываем в меньшие проекты (подсистема базы данных, вход, как примеры), можно интересоваться использованием чего-то как знаток для обработки сборки. Можно выполнить каждый меньший укус как отдельный проект или модуль, и знаток сможет поддержать, какие потребности быть созданным, если изменения будут существовать. В этом сборка может сфокусироваться на основной части Вашего проекта, и это не будет брать почти как долго.

0
ответ дан 14 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: