ограничить приоритет / темы для сборок Gradle / Android Studio?

1282
quezak

Когда Android Studio собирает мой проект, он легко пожирает все мои 8 ядер. Я хотел бы иметь возможность свободно просматривать Интернет во время компиляции моего приложения. Есть ли способ, которым я могу установить Java-процессы Gradle, чтобы иметь низкий приоритет (хороший уровень> 10)?

Это решение отлично работает для моей системы gentoo (при работе с portage в хорошем состоянии 19 я обычно могу использовать свой ПК во время компиляции). Оптимально, только java Gradle должен работать с низким приоритетом, поэтому сама Android Studio остается отзывчивой. Если это невозможно, может быть, проще ограничить использование Java-виртуальных машин Gradle только 5-7 ядрами? Это, вероятно, приведет к увеличению времени сборки.


РЕДАКТИРОВАТЬ

Я немного поэкспериментировал с этим вручную. Я запустил скрипт в цикле, который устанавливает хороший уровень 15 («низкий приоритет» для пользователей Windows) для всех новых процессов Java каждую секунду. К сожалению, система все еще не очень отзывчива. Я вижу, что во время компиляции моя средняя нагрузка увеличивается до двадцати, где у меня только 4 (логических) ядра. Это означает, что Gradle порождает слишком много потоков. Где-то еще я читал, что эти потоки тоже редко дают результаты, что может быть причиной того, что снижение приоритета не помогает.

Итак, обновленный вопрос: возможно ли ограничить количество потоков, используемых Gradle?

5

2 ответа на вопрос

3
quezak

Кажется, это известная проблема, сейчас идет обсуждение этого вопроса: https://code.google.com/p/android/issues/detail?id=66696.

Говорят, что сборка должна использовать общий пул потоков, параметр для установки ее размера есть -Pandroid.threadPoolSize=<count>и должен быть доступен в Android Studio 2.3 beta 3.

Вы можете подвести итог? bertieb 7 лет назад 0
@bertieb ок, отредактировал ответ. Я еще не тестировал его, так как все еще нахожусь на Studio 2.2, но я смотрю связанный поток для получения дополнительной информации. quezak 7 лет назад 1
0
Michal

Просто создайте ярлык с помощью следующего пути:

cmd.exe / c запустить «Android Studio» / LOW «C: \ Program Files \ Android \ Android Studio \ bin \ studio64.exe»

Или каждый раз устанавливайте приоритет в диспетчере задач, но я считаю, что такой подход лучше :)

Спасибо за предложение, я попробовал похожие вещи с хорошим уровнем на Linux. В то время как при этом процессы gradle, порожденные Studio, будут иметь более низкий приоритет, поэтому будет иметь сам процесс Studio - так что во время компиляции окно IDE также может не отвечать. После экспериментов кажется, что это все равно не решает проблему, см. Редактирование вопроса. quezak 8 лет назад 1

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