Java Android Studio在i7处理器上使用100%CPU进行项目重建
我的Windows 7机器有一个四核i7处理器。重建项目时,平均需要25秒。当我启动应用程序时,平均需要36秒(在将应用程序上载到设备之前) 我在项目的/src文件夹中有588个文件,其中包括我所有的java和xml代码。在我的/libs文件夹中,我有两个.so libs,每个5MB和7个jar 见我的附加屏幕截图。正如你所看到的,我的CPU在整个时间里都是100%的最大值。我的iTunes音乐暂停,我的windows任务栏右下角会弹出一个“性能不佳”的弹出窗口。这是多么糟糕 我正在使用Android Studio 1.2.1.1 大部分时间都花在preDex和dex操作期间 以下是我到目前为止尝试过的(单独尝试,我没有一起尝试):Java Android Studio在i7处理器上使用100%CPU进行项目重建,java,android,android-studio,Java,Android,Android Studio,我的Windows 7机器有一个四核i7处理器。重建项目时,平均需要25秒。当我启动应用程序时,平均需要36秒(在将应用程序上载到设备之前) 我在项目的/src文件夹中有588个文件,其中包括我所有的java和xml代码。在我的/libs文件夹中,我有两个.so libs,每个5MB和7个jar 见我的附加屏幕截图。正如你所看到的,我的CPU在整个时间里都是100%的最大值。我的iTunes音乐暂停,我的windows任务栏右下角会弹出一个“性能不佳”的弹出窗口。这是多么糟糕 我正在使用Andr
老实说,Android Studio比Eclipse好很多,因为它有UI设计器。缺点是它使用gradle而不是Ant。Gradle也更好,但速度较慢,尤其是在Windows上。它在Linux上运行得更好。如果您以前没有使用过Linux,请不要担心。LinuxMint是一个稳定的操作系统,它有一个类似于Windows的UI。你马上就到家了。它消耗更少的资源,从而为gradle构建留下更多的处理能力。做出改变。你再也回不去了。如上所述,团队已确定这是一个问题: --并行线程仅适用于项目并行化 对于并行运行的android任务,我们总是创建 尽可能多的线程 从页面上看,他们似乎以1.3版为目标来解决这个问题(见评论13) 与此同时,帮助我应对Windows7的是将Android Studio进程(及其子进程)的CPU亲和力设置为至少保留一个内核(如页面上的注释9所示)
有很多方法可以做到这一点,但您可能想尝试一下(建议使用的)对我来说似乎足够好的方法。以下是我能够做的三个改进: 每次构建项目时,我都会预先准备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中,我总是进行重建,然后使用play按钮启动应用程序。在Android Studio中,现在我只是做了一个清理,然后用play按钮启动应用程序。此外,Android Studio中的Run按钮并不是每次清理后都能正常工作。这似乎造成了延误,因为什么都没有发生。所以现在我让Gradle控制台保持打开状态,以确保run按钮正常工作,当它不正常时,我只需再次点击它
我曾经拥有的:
Rebuild: 26 seconds
Launch: 36 seconds
Install: 15 seconds
现在:
Clean: 8 seconds
Launch: 22 seconds
Install: 15 seconds
这是一大进步!希望这能帮助其他人 除了特定于Gradle的优化(见下文),我建议您尝试禁用Gradle缓存目录和Android Studio项目目录的防病毒保护。对我来说,这将减少大约50%的构建时间。从Windows搜索索引中排除这些相同的目录也会有所帮助 我在~/.Gradle/Gradle.properties中使用的Gradle优化
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx6144m <-- Tweak this based on available RAM
org.gradle.caching=true
org.gradle.parallel=true
kotlin.incremental=true
对为什么开发环境编译和构建588文件项目需要38秒,并且在我的i7四核处理器上使用100%的CPU。如果从CLI运行构建需要多长时间?在Android Studio中,构建项目需要比在Eclipse中使用的长得多。这是非常不幸的。返回Eclipse不是一个选项,因为Eclipse ADT插件和ant不支持multidex,所以不能使用google play库。“gradlew.bat clean”后跟“gradlew.bat assembleDebug”等于5秒+47秒。在下载了最新的Java JDK和Android Studio,并让Android Studio基于“空白活动”生成我的第一个应用程序后,我也遇到了同样的问题。它创建它,然后使用100%的CPU进行2-3分钟的“索引”。我甚至还没有写一行代码,环境处于停滞状态!!是的,我想尝试一下,但我不确定为什么gradle会在Linux上使用更少的CPU?问题是我的CPU在30秒内从5%变为100%,唯一的变化是我正在运行gradle Build Yea,这让Android开发几乎无法忍受。到目前为止,我还没有看到任何解决办法。有一个叫做“并行性”的特性可以提高性能,但它仍然是实验性的。此外,如果您有子项目,您可以通过将它们打包为jar文件来节省一些编译时间。这只意味着编译器的工作量减少。这个答案并没有解决这个问题:在软件中改变操作系统来解决性能问题不是一个现实的答案。另一个答案表明问题出在软件本身内部。
#!/bin/bash
# Clean Android cache
./gradlew cleanBuildCache
# Clean Gradle cache, prompting for each directory
find ~/.gradle/caches -maxdepth 1 -name build-cache* -print -exec rm -rfI {} \;
# Clean Project
./gradlew clean
# Stop Gradle Daemon
./gradlew --stop