首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android构建没有使用我所有的M1 Pro核心

Android构建没有使用我所有的M1 Pro核心
EN

Stack Overflow用户
提问于 2022-01-06 12:41:59
回答 1查看 965关注 0票数 2

有任何方法可以设置我的Android gradle项目,使用我的CPU的所有(更多)核心构建吗?

我有MBP M1 Pro,正如你可以看到的附加图像,在执行Rebuild Project时,它并不是以相同的方式使用我的所有核心。

我的M1 Pro有10个CPU核心,其中2个是低性能和8个性能。我想作为使用所有8个性能核心来构建我的项目。

这是我的gradle.properties设置:

代码语言:javascript
复制
org.gradle.caching=true
android.useAndroidX=true
android.enableR8.fullMode=true
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true

我也在玩org.gradle.workers.maxorg.gradle.parallel.threads,但是我根本没有看到任何变化。但也许我只是误解了它的工作原理,并设置了不正确的值。

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 10:12:13

Rebuild Project代表许多级别任务和一些IDE任务,比如文件索引,我认为您的屏幕截图是在中间阶段拍摄的,因此我认为影响CPU负载平衡的因素是Gradle。

但是,由于一些限制,Gradle无法保证您的CPU的充分使用:

  1. --parallel用于来自不同模块的任务并行运行,其效果取决于"解耦项目“先决条件,您可能希望检查项目状态/依赖关系。
  2. worker用于将一个任务分成几个子"works",AGP从4.x开始使用它,并积极地使用它(将任务划分为微小的工作),如果该项目有相当多的模块(假设>50)和资源,那么由于workers太多,8个核心甚至可能比4个核心还要慢。一项工作可以在0.1ms内完成,但是锁争浪费更多的时间)。使用最新的AGP可能解决问题,您可以检查AGP版本,并尝试减少核心号码。
  3. 这是一个线程使用屏幕截图扫描一个开源项目提维构建过程由生成扫描,它显示了最初的几个框架并行运行的任务,它略好于您的我猜,但最终CPU核心没有完全占据。您可以使用相同的工具来分析构建。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70607253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档