
Quando o Android Studio cria meu projeto, ele consome facilmente todos os meus 8 núcleos. Gostaria de poder navegar fluentemente na Internet enquanto meu aplicativo está sendo compilado. Existe uma maneira de definir os processos Java do Gradle para terem uma prioridade baixa (nível agradável> 10)?
Essa solução funciona perfeitamente para o meu sistema gentoo (com o portage rodando no niceness 19 normalmente posso usar meu PC enquanto ele está compilando). Idealmente, apenas o Java do Gradle deve ser executado com baixa prioridade, para que o próprio Android Studio permaneça responsivo. Se isso não for possível, talvez seja mais fácil limitar as VMs java do Gradle para usar apenas 5 a 7 núcleos? Provavelmente resultaria em tempos de construção mais longos.
EDITAR
Eu experimentei isso manualmente por um tempo. Executei um script em um loop que define o nível 15 ("prioridade baixa" para usuários do Windows) paratodosnovos processos java a cada segundo. Infelizmente, o sistema ainda não responde muito bem. Vejo que durante a compilação minha carga média sobe paravinteonde tenho apenas 4 núcleos (lógicos). Isso significa que o Gradle gera muitos threads. Em outro lugar eu li que esses threads raramente rendem, o que pode ser a causa pela qual diminuir a prioridade não ajuda.
Então, a pergunta atualizada é:é possível limitar o número de threads usados pelo Gradle?
Responder1
Parece um problema conhecido, há um debate contínuo sobre isso:https://code.google.com/p/android/issues/detail?id=66696
Eles dizem que a construçãodeveusar um pool de threads compartilhado, o parâmetro para definir seu tamanho está -Pandroid.threadPoolSize=<count>
e deve estar disponível no Android Studio 2.3 beta 3.
Responder2
Basta criar um atalho com o seguinte caminho:
cmd.exe /c start "Android Studio" /LOW "C:\Arquivos de Programas\Android\Android Studio\bin\studio64.exe"
Ou defina sempre a prioridade no gerenciador de tarefas, mas acredito que essa abordagem seja melhor :)