limit priority / threads para construções Gradle / Android Studio?

5

Quando o Android Studio constrói meu projeto, ele consome facilmente todos os meus 8 núcleos. Eu gostaria de poder navegar fluentemente na internet enquanto meu aplicativo está sendo compilado. Existe uma maneira que eu possa definir os processos java do Gradle para ter uma baixa prioridade (bom nível > 10)?

Essa solução funciona perfeitamente para o meu sistema gentoo (com o portage sendo executado normalmente eu posso usar o meu PC enquanto ele está compilando). Na melhor das hipóteses, apenas o java de Gradle deve ser executado com baixa prioridade, de modo que o próprio Android Studio permanece responsivo. Se isso não for possível, talvez seja mais fácil limitar as VMs java de Gradle a usar apenas 5-7 núcleos? Provavelmente resultaria em tempos de construção mais longos.

EDITAR

Eu experimentei isso manualmente por um tempo. Eu executei um script em um loop que define bom nível 15 ("prioridade baixa" para os usuários do windows) para todos os novos processos java a cada segundo. Infelizmente, o sistema ainda não é muito responsivo. Eu vejo que durante a compilação minha carga média sobe para vinte onde eu tenho apenas 4 núcleos (lógicos). Isso significa que o Gradle gera muitos segmentos. Em algum lugar eu li que também esses tópicos raramente resultam, o que pode ser a causa porque a redução da prioridade não ajuda.

Portanto, a pergunta atualizada é: é possível limitar o número de segmentos usados pelo Gradle?

    
por quezak 24.06.2016 / 11:53

2 respostas

3

Parece ser um problema conhecido. Há um debate em andamento sobre esse processo: link

Eles dizem que o build deve usar um pool de threads compartilhado, o parâmetro para definir seu tamanho é -Pandroid.threadPoolSize=<count> e deve estar disponível no Android Studio 2.3 beta 3.

    
por 18.03.2017 / 20:02
0

Basta criar um atalho com o caminho seguinte:

cmd.exe / c start "Android Studio" / LOW "C: \ Arquivos de programas \ Android \ Android Studio \ bin \ studio64.exe"

Ou defina a prioridade toda vez no gerenciador de tarefas, mas acredito que essa abordagem é melhor:)

    
por 09.09.2016 / 21:54