我注意到 Android Studio(运行时)始终使用超过 100% 的 CPU,即使它看起来没有 IDE 正在运行的后台进程(索引等)。我可能怀疑这是我的盒子特有的东西,但一些开发人员也遇到了这个问题。
CPU 使用率通常在 100 秒或 200 秒左右(请参见下面的屏幕截图)。有没有人也遇到过这种情况?如果是这样,IDE 中是否有任何策略或选项来纠正这种对系统资源的密集使用?
Thanks to Buzzrick (answered on this page, probably above my answer), he mentioned about VCS. Turning off all of the background operations of VCS seemed to have a HUGE impact toward the high cpu usage - it was 150% and now it's 20%, more or less.
I'm on OS X
Go to: Preferences > Version Control > Background. Now listed under 'Background Operations' are 6 options. I disabled the first three options which are:
Perform update on VCS in background, Perform commit to VCS in background, Perform checkout to VCS in background.
您可以在文件菜单中尝试以下选项:
省电模式仅禁用代码洞察和后台任务。
您可能会考虑转到文件>使缓存无效/重新启动您的缓存可能会在后台启动一些时髦的东西
我遇到了没有明显原因的持续高 CPU 使用率。无效缓存不起作用,省电模式也不起作用。
就我而言,“.git”目录中有问题,导致 android studio 在无限循环中失败。再次检查 repo 解决了这个问题。
我的建议是检查 android studio 日志以了解导致其动摇的任何提示。您也可以从终端启动它并检查 Stdout/Stderr 输出。
我在 Android Studio 1.0 中打开了省电模式,它有所帮助,但这意味着我选择退出 Android Studio 必须提供的众多功能。因此我试图找到一个更好的解决方案,我碰巧总是弹出一个对话框,要求我增加我的虚拟机大小。显然,一旦我增加了这个,我就可以关闭节能并让我的 Android Studio 完美运行。
操作方法如下:在 Mac OS 上,转到 /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
(要打开内容,请右键单击 Android Studio 应用程序 > 查看内容)您将找到以下变量
-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
在 Windows 上,转到环境变量并找到一个名为的系统变量_JAVA_OPTIONS
相应地增加这些数字。
即,您的 JVM 将以 Xms 的内存量启动,并且能够使用最大 Xmx 的内存量。
有趣的是,对我来说,这似乎与版本控制集成有关。
我通过重新加载我的 android studio 项目解决了这个问题,当它询问连接我的 CVS 链接时(我不记得确切的措辞),我只是说“忽略”。之后它运行平稳而不拉CPU
我在 Linux 上遇到了完全相同的问题。通过增加内存大小来解决。
首先查看top -p <android studio pid> -H
显示哪些线程正在使用大部分 CPU,对我来说有三个线程:94232、94233、94234。然后我做了一个jstack <pid>
获取android studio的堆栈转储,并寻找0x17018(= 94232),结果是"Gang worker#0 (Parallel CMD Threads)"
. 他们三个。显然 JVM 一直忙于做 GC。
还针对我的 android studio 进程打开了 jconsole,它显示 GC 时间“ 20 minutes
”!!!(在内存选项卡的底部)
修复是更改 studio.vmoptions(或在我的情况下为 studio64.vmoptions),将-Xmx
值从默认的 750m 增加到 1500m。对我来说已经足够了。如果你有太多内存,设置为 2g 或 4g 或 16g..
我尝试了以下程序,并Android Studio
以Surface Pro 3
惊人的速度加快了速度:
amount
和。memory
Android Virtual Devices
Invalidate Caches/Restart
Power Save
模式unnecessary files that are opened
。VM Heap Size
到256
.在 Windows 上,我降低了 studio64.exe 进程的优先级,并将进程的亲和性设置为内核的一半。打开任务管理器,单击进程选项卡,右键单击进程 studio64.exe,您将在菜单中看到它。
在 Android Studio 2.3 上,当“Android Monitor”窗口打开时(该窗口显示来自设备和模拟器的 Logcat 消息),然后您按Ctrl+F(Cmd+F在 Mac 上)以显示此窗口内的“查找”搜索栏,就会发生这种情况。
当您通过启用了开发人员模式的 USB 将三星手机连接到计算机时也会发生这种情况,因为三星手机通常每秒都会向 Logcat 发送大量调试文本,即使 Logcat 窗口已关闭。
所以防止100% CPU使用的解决方案是:
关闭查找搜索栏,或完全隐藏窗口。
或者
断开正在发送大量调试消息的三星手机。
或者
升级到不会发生此错误的 Android Studio 3。
就我而言,我有white-listed
Android-Studio 的文件夹,"Eset Smart Security"
问题解决了!
希望这可以帮助!
编辑:
HIPS
在我的情况下禁用Eset settings
也有帮助!
我已经把这个问题留了一段时间,因为这里的同事和海报随着时间的推移在各种解决方案中发现了价值。对我自己来说,简单地更新 Android Studio 就解决了这个问题(几个月后,这里的解决方案都没有为我工作)。