В поисках способа сократить время компиляции на нашем сервере сборки я столкнулся с проблемой накладных расходов, добавленных инкрементальный компилятор. Поскольку наш сервер сборки проверяет свежую копию исходного кода и каждый раз выполняет сборку с нуля, было бы неплохо иметь возможность полностью отключить инкрементный компилятор и не платить за то, что не будет использоваться. Это возможно?
Можно ли отключить инкрементный компилятор в sbt для сборок CI?
comment
Если вы удалите папку сборки перед каждой сборкой, инкрементной компиляции не будет.
- person Andreas Neumann   schedule 22.04.2014
comment
@AndreasNeumann - это не устранит накладные расходы, упомянутые в проблеме. Я не хочу нести затраты на извлечение общедоступного API и информации о зависимостях из исходного кода. Сбор этой информации — это то, что я хочу исключить, поскольку она никогда не будет использоваться и может позволить ускорить сборку на 15–20%.
- person purefn   schedule 23.04.2014
comment
Хорошо, удалил неверный ответ. Я в значительной степени думаю, что это пока невозможно.
- person Andreas Neumann   schedule 23.04.2014
comment
Хм, на самом деле, похоже, вам придется подождать некоторых предстоящих экспериментов с инкрементальной компиляцией. Прямо сейчас мы не предоставляем средства для создания объекта Analysis без инкрементного компилятора, и вам это нужно для работы остальных некоторых функций sbt (например, поиск основных классов и т. д.). Вы должны открыть тикет (запрос функции) для этого.
- person jsuereth   schedule 23.04.2014
Ответы (1)
Гжегож говорит в #1078:
Первоначальные цифры, которые я получил в январе, были неверными, потому что я использовал взломанную версию инкрементного компилятора для тестов. Я собрал больше цифр, используя sbt 0.13.2 и накладные расходы на инкрементный компилятор [snip]. Как видите, для всех проектов, кроме самого Scala, накладные расходы составляют менее 10%.
Поэтому дело было закрыто как недействительное. Связанная с этим, Возможность отключения инкрементного компилятора для сборок CI была закрыта, поскольку ее нельзя исправить.
Это возможно?
Здесь ответ: нет (мы можем запросить запросы).
person
Eugene Yokota
schedule
01.05.2014
Это немного прискорбно. У нас есть довольно большой проект, и время его компиляции на наших агентах CI может быть довольно большим (15+ минут). Учитывая, что строится много филиалов, даже небольшое улучшение на 5-10% может оказаться полезным для нас.
- person purefn; 01.05.2014