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

Lou*_*rda 16 java android android-studio

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

我的项目的/ src文件夹中有588个文件,其中包含我的所有java和xml代码.我的/ libs文件夹中有两个.so库,每个5MB和7个罐子.

请参阅我附带的截图.正如您所看到的,我的CPU在整个时间内的最大值都达到了100%.我的iTunes音乐暂停,我在Windows任务栏的右下角出现"性能不佳"弹出窗口.那真是太糟糕了.

我正在使用Android Studio 1.2.1.1

大部分时间都是在preDex和dex操作期间花费的.

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

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

什么都没有奏效.我无法想象这是一个常见的问题,对吗?我是不是因为这真的比Eclipse慢得多?

我想我的问题是:

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

我真的很喜欢吸管,所以如果有人有任何信息,特别是为什么dex操作占用了这么多的CPU,这将是非常棒的.

我想不用说,如果我编辑XML文件,进行重建,然后启动应用程序,就会发生这种情况.如果没有什么可以清理和重建......当我做一个Make Project时......平均构建时间是3秒.

在此输入图像描述

Lou*_*rda 7

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

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

dexOptions {
    preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)

我使用的是整个Google Play服务库:

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

我只需要Google Cloud Messenger:

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

在Eclipse中,我总是会进行重建,然后使用播放按钮启动应用程序.在Android Studio中,现在我只是做一个Clean,然后使用播放按钮启动应用程序.Android Studio中的"运行"按钮在"清理"之后每次都不起作用.由于没有发生任何事情,这导致了似乎延迟的事情.所以现在我打开Gradle控制台以确保运行按钮正常工作,当它不工作时我只是第二次点击它.

我曾经拥有的:

Rebuild: 26 seconds
Launch:  36 seconds
Install: 15 seconds
Run Code Online (Sandbox Code Playgroud)

现在:

Clean:    8 seconds
Launch:  22 seconds
Install: 15 seconds
Run Code Online (Sandbox Code Playgroud)

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

  • 您的Google Play服务和Google Cloud Messenger示例完全相同...... (2认同)

Joe*_*Joe 5

如此问题跟踪页面所述,该团队已将此问题确定为问题:

--parallel-threads仅适用于项目并行化.

对于并行运行的android任务,我们总是创建尽可能多的线程

从页面来看,似乎他们的目标是发布1.3来解决这个问题(参见评论#13).

与此同时,帮助我应对Windows 7的是设置Android Studio进程(及其子进程)的CPU亲和性,以便至少保留一个核心(如页面上的注释#9所示).

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

  • 这个问题已经持续了2年. (2认同)

its*_*ben -2

老实说,由于 UI 设计器的原因,Android Studio 毫无疑问比 Eclipse 更好。缺点是它使用 gradle 而不是 Ant。Gradle 也更好,但速度更慢——尤其是在 Windows 上。它在 Linux 上运行得更好。如果您以前没有使用过 Linux,请不要担心。Linux Mint 是一个稳定的操作系统,具有与 Windows 类似的 UI。您很快就会回家。它消耗更少的资源,从而为 gradle 构建留下更多的处理能力。进行切换。你永远不会回去。