Wysokie użycie procesora z emulatorem Androida (qemu-system-i386.exe)


112

Użycie procesora emulatora qemu-system-i386.exe prawie stale działa od 7 do 9

Android studio 2.1 Android SDK Narzędzia: 25.1.3 System operacyjny hosta: Windows 7 - i7 2630QM - zainstalowany obraz systemu 8GB RAM Intel x86 Atom

Bez względu na to, jakie ustawienie zmienię w emulatorze, jak: emulowana wydajność, wielordzeniowy procesor, obraz x86-64, zawsze to samo

To naprawdę irytujące, zawsze włączony wentylator

Czy ktoś miał rozwiązanie tego problemu?


1
Osobiście wolę używać emulatora Visua Studio na Androida , po prostu dlatego, że nigdy nie widziałem czegoś tak wydajnego, zarówno pod względem wydajności, jak i wykorzystania zasobów hosta. Chociaż wymaga włączonej funkcji Hyper-V na hoście.
Matei Radu

Spróbuję teraz, dzięki za radę
skystar7

Przepraszam za fałszywą nadzieję, ale dopiero teraz odkryłem, że Windows 7 nie ma Hyper-V, więc emulator nie może działać na twoim hoście.
Matei Radu

1
wszystko w porządku :) ... testuję teraz z wtyczką Genymotion genymotion.com/plugins
skystar7

Odpowiedzi:


178

Przyczyną stałego obciążenia procesora może być dźwięk. Jeśli nie potrzebujesz dźwięku w swoim emulatorze, możesz go wyłączyć, edytując plik konfiguracyjny AVD.

Zmień / dodaj te dwie linie

hw.audioInput=no
hw.audioOutput=no

Aktualizacja: Jak skomentował Buncis, możesz także spróbować wyłączyć GPS, jeśli nie jest potrzebny:

hw.GPS = no 

W systemie Linux / Mac plik znajduje się w ~ / .android / avd / <AVD_Name> .avd / config.ini
W systemie Windows plik znajduje się w C: \ Users \ <nazwa użytkownika> \ .android \ avd \ <AVD_Name>. avd \ config.ini


19
Nie działał na moim Macu - nadal uzyskuje wysokie zużycie procesora.
leanne

1
@antoine: to faktycznie rozwiązało mój problem - edytowałem zły plik config.ini. Ponowne uruchomienie też nie mogło zaszkodzić.
leanne

1
Dzięki! Zmniejszono z ~ 50% do ~ 1-3%
mehmet6parmak

2
rozważ również wyłączenie GPS, jeśli go nie używaszhw.GPS = no
buncis

2
@buncis dziękuję, dopiero po wyłączeniu GPS działa
Max Zonov

20

Na Macu zauważyłem, że emulator zużywał ponad 100% procesora po tym, jak mój laptop poszedł w stan uśpienia. Wyłączenie dźwięku zgodnie z sugestią Benjamina nie rozwiązało tego problemu.

U mnie działa ponowne uruchomienie symulowanego urządzenia przez długie naciśnięcie przycisku zasilania na emulatorze.


18

Użycie emulatora x86_64 (lub 64-bitowego) rozwiązało to za mnie. Zalecają wersję x86, ale działała na mnie.


4
Wydaje się, że jest to konieczne w systemie MacOS.
Rasmusob

1
Bardzo mi pomogło (macOS Mojave).
Amir J

To rozwiązanie przynajmniej dla Maca - ogromna różnica.
Lacho Tomov

13

Aby dowiedzieć się, co na urządzeniu wirtualnym zużywa najwięcej procesora:

adb shell

$ top

Spowoduje to wyświetlenie listy procesów o najwyższym zużyciu procesora.

Pomoże Ci to określić, czy jest to proces (taki jak Twoja aplikacja) w emulatorze, inny proces w emulatorze, czy tylko sama emulacja wykorzystująca dużo procesora.

W tym drugim przypadku spróbuj zoptymalizować emulator, instalując HAX (natywne instrukcje intel) lub być może włącz przyspieszenie sprzętowe za pomocą edytora profili AVD.


8

Miałem ten problem na początku listopada 2018 roku.

Urządzenie wirtualne nieustannie próbowało połączyć się z danymi w sieci komórkowej, więc wyłączyłem je w samym urządzeniu. Teraz działa świetnie.


8

Ten sam problem z qemu na Win7, HAXM 7.2.0. Próbowałem wyłączyć dźwięk, to nie pomogło, qemu w każdej chwili zużywa około 20% procesora, Android działa bardzo wolno zarówno na obrazach x86, jak i x64.

Znalazłem rozwiązania w pliku informacji o wydaniu HAXM:

  • W systemie Windows program Avast Antivirus może zakłócać działanie HAXM i powodować bardzo wolne działanie emulatora systemu Android lub QEMU . Aby obejść ten problem, należy usunąć zaznaczenie opcji „Używaj wirtualizacji zagnieżdżonej, jeśli jest dostępna” w Ustawieniach Avast> Rozwiązywanie problemów.

Mam Avast Pro Antivirus 18.5. Odznacziłem ten parametr, zrestartowałem komputer i teraz qemu zużywa 0% w stanie bezczynności, Android działa dobrze.

AKTUALIZACJA: jeśli QEMU zaczął ponownie zużywać procesor, najpierw sprawdź stan aktualizacji Avast. Po aktualizacji w tle program Avast może ponownie zakłócać działanie HAXM. Po prostu uruchom ponownie system Windows, aby go rozwiązać.


1
OMG ... działało idealnie. Po wyłączeniu Avast na 10 minut użycie procesora spadło do 15%, a po ponownym uruchomieniu do 1,4%. Dzięki wielkie!
Ali.DM

1
Avast ... też był dla mnie problemem
xcesco

To było niesamowite. Zużycie procesora spadło do 4% z 50%. Dziękuję @Nexus
Zaheer

3

mój przypadek, coz wybieram softwaredo renderowania grafiki w przysł. więc po zmianie na hardwarezmniejszenie zużycia procesora z 60 na 10, a temp procesora z 70 na 40.


To wydawało się działać dla mnie. W oprogramowaniu emulator zawsze działał ~ 106 przez cały czas. Przełączanie na sprzęt trwa około ~ 24. Ale może osiągnąć ponad ~ 200 podczas interakcji z emulatorem. Ale szybko spadnie do ~ 24, gdy nie będzie interakcji. Wydaje się, że jest to najlepsze rozwiązanie, a nie konieczność aktualizacji ustawień konfiguracyjnych, które mogą być potrzebne później.
ant2009

2

Zmniejszyłem użycie procesora w moim emulatorze, ustawiając liczbę klatek na sekundę monitora na 60 Hz. Był na 144 Hz, a mój procesor działał w 60% - 70%. Zmieniając tylko liczbę klatek na sekundę monitora, zajmuje teraz 3% wykorzystania.


czy możesz wskazać, gdzie zrobiłeś?
Ajit Kumar Dubey

We właściwościach monitora będzie dostępna opcja częstotliwości odświeżania ekranu. Ustaw na
60 Hz

2

Nie mogłem wyłączyć dźwięku za pomocą pliku config.ini, ale tylko za pomocą argumentu linii -noaudio cmd do qemu. Jednak w Android Studio 3.2 nie można dodawać niestandardowych argumentów do emulatora, więc zrobiłem to:

W katalogu emulatora Android SDK, w moim przypadku ~ / Android / Sdk / emulator /

mv emulator emulator.orig

Stwórz skrypt bash o nazwie emulator z zawartością:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

Następnie:

chmod +x emulator

Teraz argument -noaudio zostanie dodany do wszystkich wywołań emulatora z Android Studio i pozwoli zaoszczędzić wiele cykli procesora.


2

Wyłącz lokalizację w ustawieniach, a także wyłącz dźwięki przy dotknięciu.


2

Używam systemu macOS Catalina (wersja 10.15.2) z procesorem Intel Core i9 i 16 GB pamięci RAM oraz grafiką Radeon Pro 560X 4 GB.

Rozwiązałem problem wysokiego zużycia procesora przez qemu, ponownie uruchamiając emulowane urządzenie za pomocą emulowanego przycisku zasilania .

Ponadto podczas tworzenia AVD wybrałem HardwareGraphics Renderer zamiast Auto.


2

W moim przypadku przyczyną problemu był szybki rozruch, aby wymusić normalny rozruch, otworzyć plik tekstowy w formacie C:\Users\<username>\.android\avd\<AVD name>\config.ini i zmień przynajmniej jedną z wartości.

na przykład zmień linię

hw.battery=yes 

do

hw.battery=no

1

Aktualizacja:

Zainstalowałem wtyczkę Genymotion pod adresem genymotion.com/plugins i ma niesamowitą wydajność


3
Genymotion jest przyjemny i szybki, ale nie jest darmowy do użytku komercyjnego.
Gary Bak

1

W moim przypadku napotkałem ten problem tylko podczas uruchamiania wielu wystąpień emulatora.

Ponownie uruchom instalator Intel Hardware Accelerated Execution Manager (HAXM) dostarczony w Android SDK ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe), wybierz Zmień i zobacz, ile pamięci jest przydzielone do HAXM. Jeśli jest to 2 GB lub mniej, prawdopodobnie chcesz zwiększyć go do co najmniej 4 GB. Następnie uruchom ponownie emulator i zobacz, czy zużycie procesora spada.


Nie mam dostępu do przycisku Zmień (jest wyłączony). Czy istnieje inny sposób uzyskania dostępu do tej konfiguracji?
polkduran

1

Niedawno miałem ten sam problem w systemie Windows 10 (18363): AVD wykorzystywał wszystkie 16 wątków hosta w 100%, wydaje się, że android.hardware.graphics.composer@2.1-service , że winny był proces na AVD.

Co pomogło w moim przypadku: zamiar AVD settings- Advanced- zmienia OpenGL ES renderersię Desktop native OpenGLi ponownie AVD. Teraz zużywa około 2-3% moich zasobów procesora. Mam nadzieję, że to komuś pomoże.


jesteście niesamowici. Użyłem wszystkich większości odpowiedzi napisanych powyżej i ur, a użycie procesora spadło z 80 do 30: D: D
Ashu Kumar


0

Rozwiązałem ten problem, anulując „Automatycznie zapisuj bieżący stan w Quickboot”

Migawki -> Ustawienia -> Automatycznie zapisuj bieżący stan do Quickboot - NIE


0

Korzystając ze starej wersji Androida , użyłem Lollipop Galaxy Nexus API 22, dzięki czemu zużycie procesora spadło z 220% do około 30% ! ...

Zmieniłem również: Emulowana wydajność> Grafika> Sprzęt

Korzystanie z Android Api 25 ... Sprzęt do grafiki i wyłączanie audio AVD i GPS nie działał dla mnie ...

Platforma: MacOS


0

W moim przypadku był to tryb samolotowy , po włączeniu zużycie procesora skacze do 99% :

użycie procesora

Problem został zauważony w systemie Android 10.0 x86.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.