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

103

O uso da CPU do emulador qemu-system-i386.exe quase constantemente executado entre 7 ~ 9

Android Studio 2.1 Ferramentas do Android SDK: 25.1.3 Sistema operacional host: Windows 7 - i7 2630QM - 8 GB Ram Intel x86 Atom System Image instalado

Não importa a configuração que eu mude no emulador, como: desempenho emulado, CPU multi-core, imagem x86-64, sempre a mesma coisa

É realmente irritante o ventilador sempre ligado

Alguém teve uma solução para esse problema?

skystar7
fonte
1
Pessoalmente, prefiro usar o Emulador Visua Studio para Android , simplesmente porque nunca vi algo tão eficiente, tanto em termos de desempenho quanto no uso de recursos do host. Embora exija Hyper-V habilitado no host.
Matei Radu
Vou tentar isso agora, obrigado pelo conselho
skystar7
Desculpe pela falsa esperança, mas só agora descobri que o Windows 7 não tem Hyper-V, de modo que o emulador não pode ser executado em seu host.
Matei Radu
1
está tudo bem :) ... Estou testando com o plugin Genymotion
skystar7

Respostas:

163

A causa do uso constante da CPU pode ser o som. Se você não precisa de som em seu emulador, pode desabilitá-lo editando o arquivo de configuração do AVD.

Alterar / adicionar essas duas linhas

hw.audioInput=no
hw.audioOutput=no

Atualização: Como buncis comentou, você também pode tentar desativar o GPS se não for necessário:

hw.GPS = no 

No Linux / Mac, o arquivo está localizado em ~ / .android / avd / <AVD_Name> .avd / config.ini
No Windows, o arquivo está localizado em C: \ Users \ <username> \ .android \ avd \ <AVD_Name>. avd \ config.ini

Benjamin Mesing
fonte
18
Não funcionou no meu Mac - continuo recebendo alto uso da CPU.
leanne,
1
@antoine: isso realmente corrigiu meu problema - editei o arquivo config.ini errado. Reiniciar também não deve ter doído.
leanne
1
Obrigado! Diminuiu de ~ 50% para ~ 1-3%
mehmet6parmak
2
também considere desativar o GPS se você não o usarhw.GPS = no
buncis
2
@buncis obrigado, só depois de desabilitar o GPS é que funciona
Max Zonov
19

No Mac, percebi que o emulador estava usando mais de 100% da CPU depois que meu laptop entrou no modo de espera. Desligar o áudio como Benjamin sugeriu não resolveu o problema.

Reiniciar o dispositivo simulado pressionando longamente o botão liga / desliga no emulador funciona para mim.

Antoine
fonte
15

Usar o emulador x86_64 (ou 64 bits) resolveu para mim. Eles recomendam a versão x86, mas estava funcionando bem para mim.

Bri6ko
fonte
3
Isso parece ser necessário no MacOS.
Rasmusob
1
Me ajudou muito (macOS Mojave).
Amir J de
Essa é a solução pelo menos para o Mac - grande diferença.
Lacho Tomov
10

Para descobrir o que no dispositivo virtual está usando mais CPU:

adb shell

$ top

Isso mostrará uma lista de processos com o maior uso de CPU no topo.

Isso o ajudará a determinar se é um processo (como seu aplicativo) dentro do emulador, outro processo dentro do emulador ou apenas a própria emulação usando muita CPU.

No último caso, tente otimizar o emulador instalando HAX (instruções nativas intel) ou talvez habilite a aceleração de hardware usando o editor de perfil AVD.

Jorisw
fonte
8

Tive esse problema no início de novembro de 2018.

O dispositivo virtual estava constantemente tentando se conectar aos dados da rede móvel, então eu o desliguei dentro do próprio dispositivo. Trabalhe muito bem agora.

s.lg
fonte
8

O mesmo problema com o qemu no Win7, HAXM 7.2.0. Tentei desligar o áudio, não adiantou, o qemu consome cerca de 20% da CPU a qualquer momento, o Android funciona muito devagar em imagens x86 e x64.

Encontrei soluções no arquivo de notas de versão do HAXM:

  • No Windows, o Avast Antivirus pode interferir no HAXM e fazer com que o Android Emulator ou QEMU seja executado muito lentamente . Uma solução alternativa é desmarcar "Usar virtualização aninhada quando disponível" em Configurações do Avast> Solução de problemas.

Eu tenho o Avast Pro Antivirus 18.5. Desmarquei este parâmetro, reiniciei o PC e agora o qemu consome 0% em modo inativo, o Android funciona bem.

ATUALIZAÇÃO: se o QEMU começar a consumir CPU novamente, primeiro verifique o status de atualização do Avast. Após a atualização em segundo plano, o Avast pode começar a interferir no HAXM novamente. Basta reiniciar o Windows para resolvê-lo.

Nexus7fm
fonte
1
OMG ... funcionou perfeitamente. Após desativar o Avast por 10 min, o uso da CPU foi reduzido para 15% e após uma reinicialização para 1,4%. Muito obrigado!
Ali.DM
1
Avast ... foi o problema para mim também
xcesco
Isso era incrível. O uso da CPU caiu de 50% para 4%. Obrigado @Nexus
Zaheer
3

meu caso, porque eu escolho softwarea renderização de gráficos em adv. portanto, após uma mudança para hardwarereduzir o uso da CPU de 60 para 10 e a temperatura da CPU de 70 para 40.

Baltschun Ali
fonte
Isso pareceu funcionar para mim. no software, o emulador sempre rodou ~ 106 o tempo todo. A mudança para o hardware dura cerca de 24 horas. Mas pode atingir um pico de cerca de 200 ao interagir com o emulador. Mas irá rapidamente cair para ~ 24 quando não estiver interagindo. Esta parece ser a melhor solução em vez de ter que atualizar as definições de configuração que você pode precisar habilitar mais tarde.
ant2009
2

Reduzi o uso da CPU do meu emulador definindo a taxa de quadros do monitor para 60 Hz. Estava em 144 Hz e minha CPU estava funcionando em 60% - 70%. Alterando apenas a taxa de quadros do monitor, ele agora está com 3% de uso.

sônico
fonte
você pode orientar onde você fez?
Ajit Kumar Dubey
Nas propriedades do seu monitor, haverá uma opção para a taxa de atualização da tela. Defina para
60 Hz
2

Não consegui desligar o áudio com o arquivo config.ini, mas apenas com o argumento de linha -noaudio cmd para qemu. No entanto, com o Android Studio 3.2, você não pode adicionar argumentos personalizados ao emulador, então fiz o seguinte:

No diretório do emulador do Android SDK, no meu caso ~ / Android / Sdk / emulator /

mv emulator emulator.orig

Faça um script bash chamado emulador com o conteúdo:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

Então:

chmod +x emulator

Agora, o argumento -noaudio será adicionado a todas as invocações do emulador do Android Studio e economizará muitos ciclos de CPU.

Magnus Berg
fonte
2

Desative a localização nas configurações e também desative os sons de toque.

Waqas Shah
fonte
2

Estou no macOS Catalina (versão 10.15.2) com Intel Core i9 e 16 GB de RAM e gráficos Radeon Pro 560X 4 GB.

Resolvi o alto uso da CPU pelo qemu reiniciando o dispositivo emulado usando o botão de energia emulado .

Além disso, ao criar o AVD, escolhi HardwareRenderizador de gráficos em vez de Auto.

shashwat_247
fonte
2

No meu caso, era a inicialização rápida que estava causando o problema, para forçar a inicialização normal, abrir o arquivo de texto C:\Users\<username>\.android\avd\<AVD name>\config.inie alterar pelo menos um dos valores.

por exemplo, mude a linha

hw.battery=yes 

para

hw.battery=no
Bereket Kassahun
fonte
1

Atualizar:

Eu instalei o plugin Genymotion em genymotion.com/plugins, e ele tem um desempenho incrível

skystar7
fonte
3
Genymotion é bom e rápido, mas não é gratuito para uso comercial.
Gary Bak,
1

No meu caso, só encontrei esse problema ao executar várias instâncias do emulador.

Execute novamente o instalador do Intel Hardware Accelerated Execution Manager (HAXM) fornecido no Android SDK ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe), selecione Alterar e veja quanta memória está alocada para HAXM. Se for 2 GB ou menos, você provavelmente deseja aumentá-lo para pelo menos 4 GB. Em seguida, reinicie o emulador e veja se o uso da CPU diminui.

Austin B
fonte
Não consigo acessar o botão Alterar (está desabilitado). Existe uma maneira diferente de acessar essa configuração?
polkduran
1

Tive o mesmo problema recentemente no Windows 10 (18363): o AVD usou todos os 16 Threads do host a 100%, parece que o [email protected]processo no AVD era o culpado.

O que ajudou no meu caso: ir para AVD settings- Advanced- mudar OpenGL ES rendererpara Desktop native OpenGLe reiniciar o AVD. Agora ele usa cerca de 2-3% dos recursos da minha CPU. Espero que isso ajude alguém.

Droidman
fonte
vocês são incríveis. Eu usei todas as respostas escritas acima e ur, e o uso da CPU caiu de 80 para 30: D: D
Ashu Kumar
0

Mudar a resolução funcionou comigo. Eu estava usando Oreo 8.1 de 1440 x 2560 560 dpi . Agora estou usando M-DPI Oreo 8.1

Siphamandla Hero Ngwenya
fonte
0

Resolvi cancelando "Salvar automaticamente o estado atual no Quickboot"

Instantâneos -> Configurações -> Salvar automaticamente o estado atual no Quickboot - NÃO

Osman Yilmaz
fonte
0

Usando uma versão antiga do Android , usei o Lollipop Galaxy Nexus API 22 e reduzi o uso da CPU de 220% para cerca de 30% ! ...

Eu também troquei: Desempenho emulado> Gráficos> Hardware

Usando Android Api 25 ... Hardware para gráficos e desligar áudio AVD e GPS não funcionou para mim ...

Plataforma: MacOS

Hend El-Sahli
fonte
0

No meu caso era o modo Avião , quando ligado o uso da CPU salta para 99% :

utilização do CPU

O problema foi detectado no Android 10.0 x86.

vovahost
fonte
0

No meu caso, usar hardware gráfico resolveu meu problema.

insira a descrição da imagem aqui

AlirezA Barakati
fonte