Alto uso de CPU con emulador de Android (qemu-system-i386.exe)

105

El uso de la CPU del emulador qemu-system-i386.exe se ejecuta casi constantemente entre 7 ~ 9

Android Studio 2.1 Herramientas del SDK de Android: 25.1.3 Sistema operativo del host: Windows 7 - i7 2630QM - Imagen del sistema Intel x86 Atom de 8GB Ram instalada

No importa qué configuración cambie en el emulador como: rendimiento emulado, CPU de varios núcleos, imagen x86-64, siempre lo mismo

Es realmente molesto el ventilador siempre encendido

¿Alguien ha solucionado este problema?

skystar7
fuente
1
Personalmente, prefiero usar Visua Studio Emulator para Android , simplemente porque nunca había visto algo tan eficiente, tanto en el rendimiento como en el uso de los recursos del host. Aunque requiere Hyper-V habilitado en el host.
Matei Radu
Lo intentaré ahora mismo, gracias por el consejo
skystar7
Perdón por la falsa esperanza, pero solo ahora descubrí que Windows 7 no tiene Hyper-V, por lo que el emulador no se puede ejecutar en su host.
Matei Radu
1
está bien :) ... Estoy probando con el complemento Genymotion
skystar7

Respuestas:

166

La causa del uso constante de la CPU podría ser el sonido. Si no necesita sonido en su emulador, puede deshabilitarlo editando el archivo de configuración de AVD.

Cambiar / agregar esas dos líneas

hw.audioInput=no
hw.audioOutput=no

Actualización: como comentó buncis, también puede intentar deshabilitar el GPS si no es necesario:

hw.GPS = no 

En Linux / Mac, el archivo se encuentra en ~ / .android / avd / <AVD_Name> .avd / config.ini
En Windows, el archivo se encuentra en C: \ Users \ <username> \ .android \ avd \ <AVD_Name>. avd \ config.ini

Benjamin Mesing
fuente
18
No funcionó en mi Mac, todavía tengo un alto uso de CPU.
leanne
1
@antoine: esto realmente solucionó mi problema: edité el archivo config.ini incorrecto. Reiniciar tampoco podría haber hecho daño.
leanne
1
¡Gracias! Disminuyó de ~ 50% a ~ 1-3%
mehmet6parmak
2
También considere deshabilitar el GPS si no lo está usandohw.GPS = no
buncis
2
@buncis gracias, solo después de deshabilitar el gps funciona
Max Zonov
19

En Mac, noté que el emulador usaba más del 100% de la CPU después de que mi computadora portátil se durmiera. Apagar el audio como sugirió Benjamin no solucionó ese problema.

Reiniciar el dispositivo simulado presionando prolongadamente el botón de encendido del emulador me funciona.

Antonio
fuente
16

Usar el emulador x86_64 (o el de 64 bits) lo resolvió por mí. Recomiendan la versión x86, pero me estaba saliendo bien.

Bri6ko
fuente
4
Esto parece ser necesario en MacOS.
Rasmusob
1
Me ayudó mucho (macOS Mojave).
Amir J
Esa es la solución al menos para Mac: una gran diferencia.
Lacho Tomov
11

Para averiguar qué en el dispositivo virtual está usando más CPU:

adb shell

$ top

Esto le mostrará una lista de procesos con el mayor uso de CPU.

Esto le ayudará a determinar si se trata de un proceso (como su aplicación) dentro del emulador, otro proceso dentro del emulador o simplemente la emulación en sí que utiliza una gran cantidad de CPU.

En el último caso, intente optimizar el emulador instalando HAX (instrucciones nativas de Intel) o quizás habilite la aceleración de hardware usando el editor de perfiles AVD.

jorisw
fuente
8

Tuve ese problema a principios de noviembre de 2018.

El dispositivo virtual estaba contento intentando conectarse a los datos de la red móvil, así que lo apagué dentro del propio dispositivo. Funciona muy bien ahora.

s.lg
fuente
8

El mismo problema con qemu en Win7, HAXM 7.2.0. Intenté apagar el audio, no ayudó, qemu consume alrededor del 20% de la CPU en cualquier momento, Android funciona muy lento en imágenes x86 y x64.

Encontré soluciones en el archivo de notas de la versión de HAXM:

  • En Windows, Avast Antivirus puede interferir con HAXM y hacer que Android Emulator o QEMU se ejecuten muy lentamente . Una solución alternativa es desmarcar "Usar virtualización anidada donde esté disponible" en Configuración de Avast> Solución de problemas.

Tengo Avast Pro Antivirus 18.5. Desmarqué este parámetro, reinicié la PC y ahora qemu consume 0% en inactivo, Android funciona bien.

ACTUALIZACIÓN: si QEMU comenzó a consumir CPU nuevamente, primero verifique el estado de actualización de Avast. Después de la actualización en segundo plano, Avast puede comenzar a interferir con HAXM nuevamente. Simplemente reinicie Windows para solucionarlo.

Nexus7fm
fuente
1
Dios mío ... funcionó perfectamente. Después de deshabilitar Avast durante 10 minutos, el uso de la CPU se redujo al 15% y después de un reinicio al 1.4%. ¡Muchas gracias!
Ali.DM
1
Avast ... fue el problema para mí también
xcesco
Esto fue asombroso. El uso de CPU se redujo del 50% al 4%. Gracias @Nexus
Zaheer
3

mi caso, porque elijo softwarepara la representación de gráficos en adv. así que después de un cambio a la hardwarereducción del uso de la CPU de 60 a 10, y la temperatura de la CPU de 70 a 40.

Baltschun Ali
fuente
Esto pareció funcionar para mí. en el software, el emulador siempre ejecutaba ~ 106 todo el tiempo. El cambio a hardware se ejecuta alrededor de ~ 24. Pero puede alcanzar un máximo de ~ 200 al interactuar con el emulador. Pero bajará rápidamente a ~ 24 cuando no esté interactuando. Esta parece ser la mejor solución en lugar de tener que actualizar los ajustes de configuración que podría necesitar habilitar más adelante.
ant2009
2

Reduje el uso de CPU de mi emulador estableciendo la velocidad de fotogramas del monitor en 60 hz. Estaba en 144 Hz y mi CPU funcionaba al 60% - 70%. Al cambiar solo la velocidad de fotogramas del monitor, ahora tiene un uso del 3%.

soniiic
fuente
¿Puedes guiar donde lo hiciste?
Ajit Kumar Dubey
En las propiedades de su monitor, habrá una opción para la frecuencia de actualización de la pantalla. Configúrelo en 60 Hz o menos
soniiic
2

No pude apagar el audio con el archivo config.ini, pero solo con el argumento de línea -noaudio cmd para qemu. Sin embargo, con Android Studio 3.2, no puede agregar argumentos personalizados al emulador, así que hice esto:

En el directorio del emulador del SDK de Android, en mi caso ~ / Android / Sdk / emulator /

mv emulator emulator.orig

Haga un script de bash llamado emulador con el contenido:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

Luego:

chmod +x emulator

Ahora, el argumento -noaudio se agregará a todas las invocaciones del emulador desde Android Studio y le ahorrará muchos ciclos de CPU.

Magnus Berg
fuente
2

Desactive la ubicación en la configuración y también desactive los sonidos táctiles.

Waqas Shah
fuente
2

Estoy en macOS Catalina (versión 10.15.2) con Intel Core i9 y 16 GB de RAM y Radeon Pro 560X 4GB Graphics.

Resolví el uso elevado de CPU por qemu reiniciando el dispositivo emulado usando el botón de encendido emulado .

Además, mientras creaba el AVD, elegí HardwareGraphics Renderer en lugar de Auto.

shashwat_247
fuente
2

En mi caso, fue el arranque rápido lo que estaba causando el problema, forzar el arranque normal a abrir el archivo de texto en C:\Users\<username>\.android\avd\<AVD name>\config.ini y cambiar al menos uno de los valores.

por ejemplo cambiar la linea

hw.battery=yes 

a

hw.battery=no
Bereket Kassahun
fuente
1

Actualizar:

He instalado el complemento Genymotion en genymotion.com/plugins, y tiene un rendimiento increíble

skystar7
fuente
3
Genymotion es agradable y rápido, pero no gratuito para uso comercial.
Gary Bak
1

En mi caso, solo encontré este problema al ejecutar varias instancias del emulador.

Vuelva a ejecutar el instalador Intel Hardware Accelerated Execution Manager (HAXM) proporcionado en el SDK de Android ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe), seleccione Cambiar y vea cuánta memoria está asignada a HAXM. Si tiene 2 GB o menos, probablemente desee aumentarlo a al menos 4 GB. Luego reinicie su emulador y vea si el uso de la CPU disminuye.

Austin B
fuente
No puedo acceder al botón Cambiar (está desactivado). ¿Existe una forma diferente de acceder a esa configuración?
polkduran
1

Tuve el mismo problema recientemente en Windows 10 (18363): el AVD usó todos los 16 subprocesos del host al 100%, parece que el [email protected]proceso en el AVD fue el culpable.

Lo que ayudó en mi caso: ir a la AVD settings- Advanced- cambiar la OpenGL ES renderera Desktop native OpenGLy reinicie el AVD. Ahora usa como 2-3% de mis recursos de CPU. Espero que esto ayude a alguien.

Droide
fuente
Chicos, ustedes son estupendos. Usé la mayoría de las respuestas escritas arriba y ur, y el uso de la CPU bajó de 80 a 30: D: D
Ashu Kumar
0

Cambiar la resolución me funcionó. Estaba usando 1440 x 2560 560 ppp Oreo 8.1. Ahora estoy usando M-DPI Oreo 8.1

Héroe de Siphamandla Ngwenya
fuente
0

Lo resolví cancelando "Guardar automáticamente el estado actual en Quickboot"

Instantáneas -> Configuración -> Guardar automáticamente el estado actual en Quickboot - NO

Osman Yılmaz
fuente
0

Usando una especie de versión antigua de Android , usé Lollipop Galaxy Nexus API 22 ¡ redujo el uso de CPU de 220% a alrededor de 30% ! ...

También cambié: Rendimiento emulado> Gráficos> Hardware

Usando Android Api 25 ... El hardware para gráficos y apagar el audio AVD y el GPS no funcionó para mí ...

Plataforma: MacOS

Hend El-Sahli
fuente
0

En mi caso fue el modo Avión , cuando se enciende, el uso de la CPU salta al 99% :

uso de CPU

El problema se notó en Android 10.0 x86.

vovahost
fuente
0

En mi caso, el uso de gráficos de hardware resolvió mi problema.

ingrese la descripción de la imagen aquí

AlirezA Barakati
fuente