当 Android Studio 构建我的项目时,它很容易占用我所有的 8 个核心。我希望能够在编译应用程序时流畅地浏览互联网。有没有办法将 Gradle 的 java 进程设置为低优先级(nice 级别 > 10)?
该解决方案非常适合我的 gentoo 系统(portage 在 niceness 19 上运行,我通常可以在编译时使用我的 PC)。理想情况下,只有 Gradle 的 java 应该以低优先级运行,因此 Android Studio 本身仍然响应迅速。如果这不可能,也许将 Gradle 的 java VM 限制为仅使用 5-7 个核心更容易吗?但这可能会导致更长的构建时间。
编辑
我手动尝试了一下。我循环运行一个脚本,将优先级设置为 15(对于 Windows 用户为“优先级低”)全部每秒有 1000 个新的 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 启动“Android Studio”/LOW“C:\Program Files\Android\Android Studio\bin\studio64.exe”
或者每次在任务管理器中设置优先级,但我相信这种方法更好:)