Utilizzo elevato della CPU con l'emulatore Android (qemu-system-i386.exe)


103

L'utilizzo della CPU qemu-system-i386.exe dell'emulatore è quasi costantemente in esecuzione tra 7 ~ 9

Android studio 2.1 Android SDK Strumenti: 25.1.3 Sistema operativo host: Windows 7 - i7 2630QM - RAM da 8 GB Intel x86 Atom System Image installata

Non importa quale impostazione cambio nell'emulatore come: prestazioni emulate, CPU multi-core, immagine x86-64, sempre la stessa cosa

È davvero fastidioso il fan sempre acceso

Qualcuno ha risolto questo problema?


1
Personalmente preferisco utilizzare Visua Studio Emulator per Android , semplicemente perché non ho mai visto qualcosa di così efficiente, sia in termini di prestazioni che di utilizzo delle risorse host. Sebbene richieda Hyper-V abilitato sull'host.
Matei Radu

Lo proverò subito, grazie per il consiglio
skystar7

Scusa per la falsa speranza ma solo ora ho scoperto che Windows 7 non ha Hyper-V, quindi l'emulatore non può essere eseguito sul tuo host.
Matei Radu

1
va bene :) ... Sto testando con il plugin Genmony
plugins

Risposte:


163

La causa dell'utilizzo costante della CPU potrebbe essere il suono. Se non hai bisogno del suono nel tuo emulatore, puoi disabilitarlo modificando il file di configurazione di AVD.

Cambia / aggiungi queste due righe

hw.audioInput=no
hw.audioOutput=no

Aggiornamento: come commentato da buncis puoi anche provare a disabilitare il GPS se non necessario:

hw.GPS = no 

Su Linux / Mac il file si trova in ~ / .android / avd / <AVD_Name> .avd / config.ini
Su Windows il file si trova in C: \ Users \ <username> \ .android \ avd \ <AVD_Name>. avd \ config.ini


18
Non ha funzionato sul mio Mac, ho ancora un elevato utilizzo della CPU.
leanne

1
@antoine: questo ha effettivamente risolto il mio problema - ho modificato il file config.ini sbagliato. Anche il riavvio non avrebbe potuto far male.
Leanne

1
Grazie! Diminuito da ~ 50% a ~ 1-3%
mehmet6parmak

2
Considera anche di disabilitare il GPS se non lo usihw.GPS = no
buncis

2
@ buncis grazie, solo dopo aver disabilitato il gps funziona
Max Zonov

19

Su Mac ho notato che l'emulatore utilizzava oltre il 100% della CPU dopo che il mio laptop è andato in stop. Disattivare l'audio come suggerito da Benjamin non ha risolto il problema.

Il riavvio del dispositivo simulato premendo a lungo il pulsante di accensione sull'emulatore funziona per me.


15

L'utilizzo dell'emulatore x86_64 (o 64 bit) lo ha risolto per me. Raccomandano la versione x86, ma per me ha funzionato.


3
Questo sembra essere necessario su MacOS.
Rasmusob

1
Mi ha aiutato molto (macOS Mojave).
Amir J

Questa è la soluzione almeno per Mac: enorme differenza.
Lacho Tomov

10

Per scoprire cosa sul dispositivo virtuale utilizza più CPU:

adb shell

$ top

Questo ti mostrerà un elenco di processi con il massimo utilizzo della CPU in cima.

Questo ti aiuterà a determinare se si tratta di un processo (come la tua app) all'interno dell'emulatore, un altro processo all'interno dell'emulatore o solo l'emulazione stessa che utilizza molta CPU.

In quest'ultimo caso, prova a ottimizzare l'emulatore installando HAX (Native Intel instructions) o magari abilita l'accelerazione hardware utilizzando l'editor di profili AVD.


8

Ho avuto quel problema all'inizio di novembre 2018.

Il dispositivo virtuale stava provando a connettersi ai dati della rete mobile, quindi l'ho spento all'interno del dispositivo stesso. Funziona alla grande adesso.


8

Lo stesso problema con qemu su Win7, HAXM 7.2.0. Ho provato a disattivare l'audio, non ha aiutato, qemu consuma circa il 20% della CPU in qualsiasi momento, Android funziona molto lentamente su entrambe le immagini x86 e x64.

Ho trovato soluzioni nel file delle note di rilascio di HAXM:

  • Su Windows, Avast Antivirus può interferire con HAXM e rallentare l'esecuzione di Android Emulator o QEMU . Una soluzione alternativa consiste nel deselezionare "Usa virtualizzazione annidata ove disponibile" in Impostazioni Avast> Risoluzione dei problemi.

Ho Avast Pro Antivirus 18.5. Ho deselezionato questo parametro, riavviato il PC e ora qemu consuma lo 0% in idle, Android funziona bene.

AGGIORNAMENTO: se QEMU ha iniziato a consumare nuovamente la CPU, controllare prima lo stato di aggiornamento di Avast. Dopo l'aggiornamento in background, Avast potrebbe iniziare a interferire nuovamente con HAXM. Riavvia Windows per risolverlo.


1
OMG ... ha funzionato perfettamente. Dopo aver disabilitato Avast per 10 minuti, l'utilizzo della CPU è stato ridotto al 15% e dopo un riavvio all'1,4%. Grazie mille!
Ali.DM

1
Avast ... è stato il problema anche per me
xcesco

Questo è stato fantastico. L'utilizzo della CPU è sceso al 4% dal 50%. Grazie @Nexus
Zaheer

3

il mio caso, perché scelgo softwareper il rendering grafico in adv. quindi, dopo una modifica, hardwareridurre l'utilizzo della CPU da 60 a 10 e la temperatura della CPU da 70 a 40.


Questo sembrava funzionare per me. sul software l'emulatore girava sempre ~ 106 tutto il tempo. Il passaggio all'hardware viene eseguito circa ~ 24. Ma può raggiungere un picco di oltre ~ 200 quando si interagisce con l'emulatore. Ma scenderà rapidamente a ~ 24 quando non si interagisce. Questa sembra essere la soluzione migliore piuttosto che dover aggiornare le impostazioni di configurazione che potresti dover abilitare in seguito.
ant2009

2

Ho ridotto l'utilizzo della CPU del mio emulatore impostando il framerate del monitor a 60 Hz. Era su 144 Hz e la mia CPU girava al 60% - 70%. Modificando solo il framerate del monitor, ora è al 3% di utilizzo.


puoi guidare dove hai fatto?
Ajit Kumar Dubey

Nelle proprietà del monitor, ci sarà un'opzione per la frequenza di aggiornamento dello schermo. Impostalo su
60 Hz

2

Non sono riuscito a spegnere l'audio con il file config.ini, ma solo con l'argomento della riga -noaudio cmd per qemu. Tuttavia, con Android Studio 3.2, non puoi aggiungere argomenti personalizzati all'emulatore, quindi ho fatto questo:

Nella directory dell'emulatore di Android SDK, nel mio caso ~ / Android / Sdk / emulator /

mv emulator emulator.orig

Crea uno script bash chiamato emulatore con il contenuto:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

Poi:

chmod +x emulator

Ora, l'argomento -noaudio verrà aggiunto a tutte le invocazioni dell'emulatore da Android Studio e ti farà risparmiare molti cicli della CPU.


2

Disabilita la posizione nelle impostazioni e disabilita anche i suoni al tocco.


2

Sono su macOS Catalina (versione 10.15.2) con Intel Core i9 e 16 GB di RAM e scheda grafica Radeon Pro 560X da 4 GB.

Ho risolto un elevato utilizzo della CPU da parte di qemu riavviando il dispositivo emulato utilizzando il pulsante di accensione emulato .

Inoltre, durante la creazione dell'AVD, ho scelto HardwareGraphics Renderer invece di Auto.


2

Nel mio caso è stato l'avvio rapido a causare il problema, per forzare l'avvio normale aprire il file di testo C:\Users\<username>\.android\avd\<AVD name>\config.inie modificare almeno uno dei valori.

per esempio cambia la linea

hw.battery=yes 

per

hw.battery=no

1

Aggiornare:

Ho installato il plug-in Genmony su genmony.com/plugins e ha prestazioni sorprendenti


3
Genmony è bello e veloce, ma non gratuito per uso commerciale.
Gary Bak

1

Nel mio caso, ho riscontrato questo problema solo durante l'esecuzione di più istanze dell'emulatore.

Riesegui il programma di installazione di Intel Hardware Accelerated Execution Manager (HAXM) fornito in Android SDK ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe), seleziona Modifica e verifica la quantità di memoria allocata a HAXM. Se è 2 GB o meno, probabilmente vorrai aumentarlo ad almeno 4 GB. Quindi riavvia l'emulatore e verifica se l'utilizzo della CPU diminuisce.


Non riesco ad accedere al pulsante Cambia (è disabilitato). C'è un modo diverso per accedere a quella configurazione?
polkduran

1

Recentemente ho avuto lo stesso problema su Windows 10 (18363): l'AVD utilizzava tutti i 16 thread dell'host al 100%, sembra android.hardware.graphics.composer@2.1-service colpa processo sull'AVD.

Cosa ha aiutato nel mio caso: andare su AVD settings- Advanced- cambiare OpenGL ES rendererin Desktop native OpenGLe riavviare AVD. Ora utilizza circa il 2-3% delle mie risorse della CPU. Spero che questo aiuti qualcuno.


voi ragazzi siete fantastici. Ho usato tutte le risposte scritte sopra e ur, e l'utilizzo della CPU è sceso da 80 a 30: D: D
Ashu Kumar,

0

La modifica della risoluzione ha funzionato da me. Stavo usando 1440 x 2560560 dpi Oreo 8.1. Ora sto usando M-DPI Oreo 8.1


0

L'ho risolto annullando "Salva automaticamente lo stato corrente in Quickboot"

Istantanee -> Impostazioni -> Salva automaticamente lo stato corrente in Quickboot - NO


0

Utilizzando una sorta di vecchia versione di Android, ho utilizzato Lollipop Galaxy Nexus API 22 che ha ridotto l'utilizzo della CPU dal 220% a circa il 30% ! ...

Ho anche cambiato: Prestazioni emulate> Grafica> Hardware

Uso di Android Api 25 ... L'hardware per la grafica e lo spegnimento dell'audio AVD e del GPS non funzionavano per me ...

Piattaforma: MacOS


0

Nel mio caso era la modalità aereo , quando è attivata l'utilizzo della CPU salta al 99% :

uso della CPU

Il problema è stato notato su Android 10.0 x86.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.