
Когда Android Studio собирает мой проект, он легко съедает все мои 8 ядер. Я хотел бы иметь возможность свободно просматривать интернет, пока мое приложение компилируется. Есть ли способ установить низкий приоритет для процессов Java Gradle (хороший уровень > 10)?
Это решение отлично работает для моей системы Gentoo (с Portage, работающим на niceness 19, я могу нормально использовать свой ПК, пока он компилируется). Оптимально, чтобы только Java Gradle работал с низким приоритетом, чтобы сама Android Studio оставалась отзывчивой. Если это невозможно, может быть, проще ограничить виртуальные машины Java Gradle, чтобы они использовали только 5-7 ядер? Хотя это, вероятно, приведет к увеличению времени сборки.
РЕДАКТИРОВАТЬ
Я немного поэкспериментировал с этим вручную. Я запустил скрипт в цикле, который устанавливает хороший уровень 15 («низкий приоритет» для пользователей Windows) длявсеnew java обрабатывает каждую секунду. К сожалению, система все еще не очень отзывчива. Я вижу, что во время компиляции моя средняя нагрузка увеличивается додвадцатьгде у меня всего 4 (логических) ядра. Это означает, что Gradle порождает слишком много потоков. Где-то еще я читал, что эти потоки также редко уступают, что может быть причиной того, что понижение приоритета не помогает.
Итак, обновленный вопрос:можно ли ограничить количество потоков, используемых Gradle?
решение1
Похоже, это известная проблема, по этому поводу продолжаются дебаты:https://code.google.com/p/android/issues/detail?id=66696
Они говорят, что сборкадолжениспользуйте общий пул потоков, параметр для задания его размера доступен -Pandroid.threadPoolSize=<count>
и должен быть доступен в Android Studio 2.3 beta 3.
решение2
Просто создайте ярлык со следующим путем:
cmd.exe /c start "Android Studio" /LOW "C:\Program Files\Android\Android Studio\bin\studio64.exe"
Или каждый раз устанавливать приоритет в диспетчере задач, но я считаю, что этот подход лучше : )