Android Studio 在 i7 处理器上使用 100% CPU 进行项目重建

2022-09-03 07:29:39

我的 Windows 7 计算机具有四核 i7 处理器。当我重新构建我的项目时,平均需要25秒。当我启动应用程序时,平均需要36秒(在应用程序上传到设备之前)。

我在项目的/src文件夹中有588个文件,其中包括我所有的java和xml代码。我有两个 .so libs 每个 5MB 和 7 个 jar 在我的 /libs 文件夹中。

请参阅我随附的屏幕截图。如您所见,我的CPU在整个时间内都以100%的速度达到最大值。我的 iTunes 音乐暂停,我在窗口任务栏的右下角看到一个“性能不佳”弹出窗口。这有多糟糕。

我使用的是 Android Studio 1.2.1.1

大部分时间都花在 preDex 和 dex 操作期间。

以下是我到目前为止尝试过的内容(另外,我还没有一起尝试过):

  1. 添加 gradle.properties -> “org.gradle.daemon=true”
  2. 省电
  3. 模式使缓存无效 /
  4. 重新启动全局 Gradle 设置 - 脱机>
  5. 工作编译器 -> 自动生成项目

目前还没有任何东西奏效。我无法想象这是一个常见的问题,我说的对吗?我是不是太过自在,因为这真的比Eclipse慢得多?

我想我的问题是:

  1. 这可能是由于我的jars或左右文件的大小吗?
  2. 我接管了一个在 XML 文件中有许多嵌套视图的项目。这是否会导致问题?

我真的在寻求吸管,所以如果有人有任何信息,特别是为什么dex操作占用了这么多CPU,那就太好了。

我想不言而喻,如果我编辑XML文件,进行重建,然后启动应用程序,就会发生这种情况。如果没有什么需要清理和重建的...当我只是做一个制作项目...平均构建时间为 3 秒。

enter image description here


答案 1

以下是我能够做出的三项改进:

每次构建项目时,我都会预先索引我的 JAR,所以我找到了这个解决方案:

dexOptions {
    preDexLibraries = false
}

我正在使用整个Google Play服务库:

compile('com.google.android.gms:play-services:+') {
    exclude module: 'support-v4'
}

当我所需要的只是Google Cloud Messenger时:

compile('com.google.android.gms:play-services-gcm:+') {
    exclude module: 'support-v4'
}

在Eclipse中,我总是会做一个Rebuild,然后用播放按钮启动应用程序。在Android Studio中,现在我只是在做一个清洁,然后使用播放按钮启动应用程序。此外,Android Studio中的“运行”按钮在清理后每次都不起作用。这导致了似乎是延迟,因为什么都没有发生。所以现在我把Gradle控制台保持打开状态,以确保运行按钮正常工作,当它不起作用时,我只是第二次点击它。

我曾经拥有:

Rebuild: 26 seconds
Launch:  36 seconds
Install: 15 seconds

现在:

Clean:    8 seconds
Launch:  22 seconds
Install: 15 seconds

这是一个重大的改进!希望这有助于其他人。


答案 2

此问题的跟踪器页面上所述,团队已将此确定为问题:

--并行线程仅适用于项目并行化。

对于并行运行的 Android 任务,我们始终创建尽可能多的线程

从页面上看,他们似乎以1.3版本为目标来解决这个问题(请参阅那里的注释#13)。

与此同时,帮助我应对Windows 7的是将Android Studio进程(及其子进程)的CPU关联设置为至少一个内核(如页面上的评论#9所建议的那样)。

有很多方法可以做到这一点,但你可能想尝试这个超级用户问题(建议使用Process Lasso的投票最高的答案,这对我来说似乎足够好。


推荐