如何在运行Android Studio Gradle构建时使用所有CPU核心/线程?

35

我正在寻找 Android Studio / Gradle 中的参数或配置,以设置构建过程,使其在构建时使用我的所有 CPU 核心。例如:如果我的 CPU 有四个核心,并且每个核心都运行着 8 个线程,那么如何优化构建过程,以便充分利用所有可用资源(当然是并行的)?

谢谢!

3个回答

38

在我的项目中的local.properties文件中,我有以下内容

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

此外,您还可以指定

org.gradle.parallel.threads

该参数指定用于并行执行的最大线程数,需要使用org.gradle.parallel=true。您可以在此处找到更多有关信息。


1
谢谢您的回答!您能否解释一下如何确定使用的理想线程数?@blackbelt - ori888
4
在寻找相反的内容时,我偶然发现了这个问题,即如何防止Android Studio使用所有的核心并导致机器变慢。我发现让gradle使用略少于总数的核心是不错的选择(因为在最坏的情况下,Android Studio也会使用一两个核心)。 - CasualT
org.gradle.parallel.threads 不再起作用,请使用 org.gradle.workers.max 替代。这是应该被接受的答案 -> https://dev59.com/XV0a5IYBdhLWcg3wS2-8#58682140 - julianwki
@julianwki 这个答案是7年前的。事物变化是很自然的。 - Blackbelt
@Blackbelt 事情是会变的,没错。但你的答案已经过时了,应该做出相应的反映。只要你不更新它,其他答案就更好(从未过时的意义上)。 - julianwki

15

简述

Gradle Build Environment Documentation指出:

org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.workers.max=4             

详情

默认情况下,org.gradle.workers.max设置为CPU处理器的数量(在我的情况下是8)。

由于我的Android Studio会冻结Ubuntu工作站(有时会强制我重新启动计算机),因此我已将其设置为4,以确保我的工作站不会耗尽CPU和内存。


9

已接受答案的更新:

由于Gradle使用工作器API,您需要使用

org.gradle.workers.max

代替
org.gradle.parallel.threads

链接到文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接