Имеет ли какое-либо преимущество в производительности компиляция проектов параллельно с многопоточной программой вместо использования однопоточной программы?

Мне нужно создать с помощью Java программу, способную выполнять n сборок для определенного проекта Android. В настоящее время я использую класс ProcessBuilder. и Process для выполнения команды < em>"./gradlew assembleRelease", которая выполняет задачу "assembleRelease", вызывая gradle, что позволяет собрать проект и вывести подписанный APK.

Как я уже говорил, программе нужно выполнить n сборок (1.000-4.000) для определенного андроид проекта. Итак, мой вопрос:

Есть ли какие-либо преимущества (время выполнения) в создании многопоточной программы, которая распределяет эти сборки между n потоками (управляемыми ExecutorService), а не выполнять все сборки в одном потоке? И как я могу узнать, что является оптимальным количество потоков для асинхронного запуска?

Спасибо


person Víctor Albertos    schedule 12.09.2015    source источник


Ответы (1)


Вместо того, чтобы делать это самостоятельно на Java, я бы предложил посмотреть на существующие решения.

Если у вас нет сервера сборки, это будет отличный инструмент для решения этой проблемы, поскольку он знает все о параллельном запуске сборок!

Для тысяч заданий я бы порекомендовал скриптовое решение для создания и обслуживания заданий, а также репозиторий с контролем версий, позволяющий заданиям получать исходники при изменении (например, github).

Я обнаружил, что Jenkins с плагином Job DSL отлично справляется с этой задачей. См. https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

person Thorbjørn Ravn Andersen    schedule 12.09.2015
comment
Спасибо за предложение. Могу ли я с помощью этого DSL-плагина попасть в конечную точку и получить JSON, который установит количество выполняемых сборок, среди прочего, например, идентификатор клиента и т. д.? - person Víctor Albertos; 12.09.2015
comment
Вероятно. Это просто запущенный скрипт, поэтому я ожидаю, что это возможно. - person Thorbjørn Ravn Andersen; 12.09.2015