Android模拟器(qemu-system-i386.exe)的CPU使用率高


103

模拟器qemu-system-i386.exe的CPU使用率几乎一直在7〜9之间运行

Android studio 2.1 Android SDK工具:25.1.3主机操作系统:Windows 7-i7 2630QM-已安装8GB Ram Intel x86 Atom系统映像

无论我在模拟器中进行何种设置更改,例如:仿真性能,多核CPU,x86-64映像,总是一样

总是很烦的粉丝

任何人都可以解决此问题吗?


1
就个人而言,我更喜欢使用Android的Visua Studio模拟器,这仅仅是因为我从未见过如此高效的东西,无论是在性能方面还是在使用主机资源方面。尽管需要在主机上启用Hyper-V。
马泰拉杜

感谢您的建议,我现在尝试一下
skystar7 '16

对错误的希望表示抱歉,但直到现在,我才发现Windows 7没有Hyper-V,因此模拟器无法在您的主机上运行。
Matei Radu'5

1
没关系:) ...我现在正在测试Genymotion插件genymotion.com/plugins
skystar7 '16

Answers:


163

导致CPU持续使用的原因可能是声音。如果您不需要模拟器中的声音,则可以通过编辑AVD的配置文件将其禁用。

更改/添加这两行

hw.audioInput=no
hw.audioOutput=no

更新:如本希斯评论所述,如果不需要,您也可以尝试禁用GPS:

hw.GPS = no 

Linux / Mac上,该文件位于〜/ .android / avd / <AVD_Name> .avd / config.ini。
Windows上,该文件位于C:\ Users \ <用户名> \。android \ avd \ <AVD_Name>。 avd \ config.ini


18
在Mac上无法正常工作-CPU使用率仍然很高。
Leanne

1
@antoine:这实际上确实解决了我的问题-我编辑了错误的config.ini文件。重新启动也不会造成伤害。
leanne

1
谢谢!从
〜50

2
如果您不使用GPS,也可以考虑禁用GPShw.GPS = no
Buncis

2
@buncis谢谢,只有在禁用gps后才起作用
Max Zonov

19

在Mac上,我注意到笔记本电脑进入睡眠状态后,模拟器使用了100%以上的CPU。按照本杰明的建议关闭音频并不能解决该问题。

通过长按模拟器上的电源按钮来重新启动模拟设备对我而言是可行的。


15

使用x86_64(或64位)仿真器为我解决了该问题。他们推荐使用x86版本,但它确实适合我。


3
在MacOS上,这似乎是必需的。
拉斯穆布

1
帮助了我很多(macOS Mojave)。
阿米尔J

至少对于Mac而言,这就是解决方案-差异很大。
Lacho Tomov

10

要找出虚拟设备上使用最多的CPU:

adb shell

$ top

这将向您显示最高CPU使用率的进程列表。

这将帮助您确定它是仿真器中的一个进程(例如您的应用程序),仿真器中的另一个进程还是仅使用大量CPU的仿真本身。

在后一种情况下,请尝试通过安装HAX(本地intel指令)来优化仿真器,或者使用AVD配置文件编辑器启用硬件加速。


8

我在2018年11月开始遇到这个问题。

虚拟设备正在尝试连接到移动网络数据,因此我在设备本身内部将其关闭。现在工作很好。


8

在Win7,HAXM 7.2.0上使用qemu遇到相同的问题。我尝试关闭音频,但没有帮助,qemu随时消耗大约20%的CPU,Android在x86和x64图像上的运行速度都很慢。

我在HAXM的发行说明文件中找到了解决方案:

  • 在Windows上,Avast Antivirus可能会干扰HAXM并导致Android Emulator或QEMU运行非常缓慢。解决方法是在Avast设置>故障排除中取消选中“使用嵌套虚拟化(如果可用)”。

我有Avast Pro Antivirus 18.5。我没有选中此参数,重新启动了PC,现在qemu消耗了0%的空闲时间,Android运行正常。

更新:如果QEMU开始再次消耗CPU,请首先检查Avast的更新状态。后台更新后,Avast可能会再次开始干扰HAXM。只需重新启动Windows即可解决。


1
天哪...工作完美。禁用Avast 10分钟后,CPU使用率降低到15%,重新启动后降低到1.4%。非常感谢!
Ali.DM

1
Avast ...也是我的问题
xcesco

太神奇了 CPU使用率从50%下降到4%。谢谢@Nexus
Zaheer

3

我的情况是,我选择software在adv中进行图形渲染。因此,在hardware将CPU使用率从60降低到10,将CPU温度从70降低到40之后。


这似乎对我有用。在软件上,仿真器始终始终运行〜106。切换到硬件大约需要24个小时。但是与仿真器进行交互时,峰值可能会超过200。但是如果不进行互动,则会很快下降到〜24。这似乎是最好的解决方案,而不是必须更新以后可能需要启用的配置设置。
ant2009

2

通过将监视器的帧速率设置为60hz,我减少了模拟器的CPU使用率。在144hz上运行,我的CPU运行在60%-70%。通过仅更改监视器的帧速率,它的使用率现在为3%。


你能指导你去哪里吗?
Ajit Kumar Dubey

在监视器属性中,将有一个屏幕刷新率选项。将其设置为60hz或更低
声音

2

我无法使用config.ini文件关闭音频,而只能使用qemu的-noaudio cmd行参数。但是,对于Android Studio 3.2,您无法将自定义参数添加到模拟器中,因此我做到了这一点:

在Android SDK的仿真器目录中,以我为例,〜/ Android / Sdk / emulator /

mv emulator emulator.orig

创建一个名为emulator的bash脚本,其内容如下:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

然后:

chmod +x emulator

现在,参数-noaudio将被添加到Android Studio的所有模拟器调用中,并将节省大量CPU周期。



2

我在使用Intel Core i9和16 GB RAM和Radeon Pro 560X 4GB图形的macOS Catalina(版本10.15.2)上。

我通过使用仿真电源按钮重新启动仿真设备来解决qemu占用大量CPU的问题。

另外,在创建AVD时,我选择了HardwareGraphics Renderer而不是Auto


2

就我而言,是导致问题的原因是快速启动,迫使其进入正常启动状态,请打开文本文件 C:\Users\<username>\.android\avd\<AVD name>\config.ini并至少更改其中一个值。

例如换线

hw.battery=yes 

hw.battery=no

1

更新:

我已经在genymotion.com/plugins上安装了Genymotion插件,它的性能惊人


3
Genymotion很好且快速,但并非免费用于商业用途。
加里·巴克

1

就我而言,我仅在运行模拟器的多个实例时遇到此问题。

重新运行Android SDK(<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe)中提供的Intel硬件加速执行管理器(HAXM)安装程序,选择Change,然后查看为HAXM分配了多少内存。如果小于或等于2 GB,则可能需要将其增加到至少4 GB。然后重新启动仿真器,查看CPU使用率是否下降。


我无法访问“ 更改”按钮(已禁用)。有没有其他方法可以访问该配置?
polkduran

1

我最近在Windows 10(18363)上遇到了相同的问题:AVD以100%使用了主机的所有16个线程,这似乎android.hardware.graphics.composer@2.1-service归咎于AVD上的过程。

是什么在我的情况帮助:要AVD settings- Advanced-改变OpenGL ES rendererDesktop native OpenGL并重新启动AVD。现在它占用了我2-3%的CPU资源。希望这对某人有帮助。


你们很棒。我用了上面和你上面写的所有大多数答案,CPU使用率从80下降到了30:D:D
Ashu Kumar



0

使用旧的Android版本,我使用Lollipop Galaxy Nexus API 22将CPU使用率从220%降低30%左右!...

我还切换了:仿真性能>图形>硬件

使用Android Api 25 ...图形硬件以及关闭AVD音频和GPS不适用于我...

平台:MacOS


0

在我的情况下是飞行模式,打开电源后,CPU使用率将跃升至99%

CPU使用率

在Android 10.0 x86上发现了此问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.