
Android Studio でプロジェクトをビルドすると、8 つのコアがすぐにすべて消費されます。アプリのコンパイル中にインターネットをスムーズに閲覧できるようにしたいのですが、Gradle の Java プロセスの優先度を低く設定する方法はありますか (nice レベル > 10)?
このソリューションは私の Gentoo システムでは完璧に機能します (portage を niceness 19 で実行すれば、コンパイル中に PC を通常使用できます)。最適なのは、Gradle の Java のみを低優先度で実行し、Android Studio 自体の応答性を維持することです。それが不可能な場合は、Gradle の Java VM が 5 ~ 7 コアのみを使用するように制限する方が簡単かもしれません。ただし、ビルド時間は長くなる可能性があります。
編集
私はこれを手動で少し実験しました。ループ内でスクリプトを実行し、niceレベル15(Windowsユーザーの場合は「優先度低」)を設定します。全て毎秒新しいJavaプロセスが実行されます。残念ながら、システムの応答性はまだあまり良くありません。コンパイル中は平均負荷が20人コアが 4 つ (論理) しかない場合。つまり、Gradle が生成するスレッドが多すぎるということです。どこかで読んだのですが、これらのスレッドもほとんど譲歩しないので、優先度を下げても効果がないのかもしれません。
したがって、更新された質問は次のとおりです。Gradle が使用するスレッドの数を制限することは可能ですか?
答え1
これは既知の問題のようですが、アップストリームではこの問題に関する議論が続いています。参考:
彼らはビルドがすべき共有スレッド プールを使用する場合、そのサイズを設定するパラメータは-Pandroid.threadPoolSize=<count>
Android Studio 2.3 ベータ 3 で使用できるはずです。
答え2
次のパスでショートカットを作成するだけです:
cmd.exe /c start "Android Studio" /LOW "C:\Program Files\Android\Android Studio\bin\studio64.exe"
または、タスク マネージャーで毎回優先順位を設定することもできますが、この方法の方が良いと思います : )