webdevqa.jp.net

Gradle / Android Studioビルドの優先度/スレッドを制限しますか?

Android St​​udioがプロジェクトをビルドすると、8つのコアすべてが簡単に消費されてしまいます。アプリのコンパイル中にインターネットを流暢に閲覧できるようにしたいと思います。 GradleのJavaプロセスの優先度を低く設定する方法はありますか(ニースレベル> 10)?

そのソリューションは、私のgentooシステムで完全に機能します(Portageがnice19で実行されているため、通常、コンパイル中にPCを使用できます)。最適には、GradleのJavaのみを低優先度で実行する必要があるため、AndroidStudio自体は応答性を維持します。それが不可能な場合は、GradleのJava VMを5〜7コアのみを使用するように制限する方が簡単でしょうか。ただし、ビルド時間が長くなる可能性があります。


編集

私はこれを少し手動で試しました。 allnew Javaに対してNiceレベル15(Windowsユーザーの場合は「優先度が低い」)を設定するループでスクリプトを実行しました毎秒処理します。残念ながら、システムはまだあまり応答していません。コンパイル中の平均負荷は2になり、4つの(論理)コアしかないことがわかります。これは、Gradleが生成するスレッドが多すぎることを意味します。他のどこかで、これらのスレッドもめったに生成されないことを読みました。これが、優先度を下げても効果がない原因である可能性があります。

したがって、更新された質問は次のとおりです。Gradleが使用するスレッドの数を制限することは可能ですか?

6
quezak

既知の問題のようですが、このアップストリームについては継続的な議論があります: https://code.google.com/p/Android/issues/detail?id=66696

ビルドは共有スレッドプールを使用する必要があり、サイズを設定するパラメーターは-Pandroid.threadPoolSize=<count>であり、Android St​​udio2.3ベータ版で利用可能である必要があると言われています3.3。

2
quezak

次のパスでショートカットを作成するだけです。

cmd.exe/c start "Android Studio"/LOW "C:\ Program Files\Android\Android Studio\bin\studio64.exe"

または、タスクマネージャーで毎回優先順位を設定しますが、このアプローチの方が優れていると思います:)

0
Michal