Android 에뮬레이터 (qemu-system-i386.exe)의 높은 CPU 사용량
에뮬레이터 qemu-system-i386.exe CPU 사용량은 거의 7 ~ 9 사이에서 계속 실행됩니다.
Android 스튜디오 2.1 Android SDK 도구 : 25.1.3 호스트 운영 체제 : Windows 7-i7 2630QM-8GB Ram Intel x86 Atom 시스템 이미지 설치
에뮬레이터에서 어떤 설정을 변경하더라도 에뮬레이트 된 성능, 멀티 코어 CPU, x86-64 이미지, 항상 같은 것
항상 성가신 팬입니다
누구든지이 문제를 해결 했습니까?
지속적인 CPU 사용의 원인은 소리 일 수 있습니다. 에뮬레이터에 사운드가 필요하지 않은 경우 AVD의 구성 파일을 편집하여 비활성화 할 수 있습니다.
이 두 줄 변경 / 추가
hw.audioInput=no
hw.audioOutput=no
업데이트 : Buncis가 언급했듯이 필요하지 않은 경우 GPS를 비활성화 할 수도 있습니다.
hw.GPS = no
에 리눅스 / 맥 파일은 ~ / .android / AVD / <AVD_Name> .avd / config.ini 파일에 위치
에 윈도우 . \ 사용자 \ <사용자 이름> \ 안드로이드 \ AVD \ <AVD_Name> : 파일이 C에 있습니다. avd \ config.ini
Mac에서 랩톱이 절전 모드로 전환 된 후 에뮬레이터가 100 % 이상의 CPU를 사용하고 있음을 확인했습니다. Benjamin이 제안한대로 오디오를 꺼도 문제가 해결되지 않았습니다.
에뮬레이터의 전원 버튼을 길게 눌러 시뮬레이션 된 장치를 다시 시작하면 효과적입니다.
x86_64 (또는 64 비트) 에뮬레이터를 사용하여 문제를 해결했습니다. 그들은 x86 버전을 권장하지만 그것은 나를 위해 행동했습니다.
Win7, HAXM 7.2.0의 qemu와 동일한 문제. 오디오를 끄려고했지만 도움이되지 않았습니다. qemu는 항상 CPU의 약 20 %를 소비하고 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를 재부팅하십시오.
2018 년 11 월 초에 그 문제가있었습니다.
가상 장치가 모바일 네트워크 데이터에 콘텐츠 연결을 시도하고 있었기 때문에 장치 자체에서 가상 장치를 껐습니다. 지금 훌륭하게 일하십시오.
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주기를 절약 할 수 있습니다.
가상 장치에서 CPU를 가장 많이 사용하는 항목을 확인하려면 :
adb shell
$ top
그러면 CPU 사용량이 가장 높은 프로세스 목록이 표시됩니다.
이렇게하면 에뮬레이터 내부의 프로세스 (예 : 앱)인지, 에뮬레이터 내부의 다른 프로세스인지, 아니면 많은 CPU를 사용하는 에뮬레이션 자체인지를 확인하는 데 도움이됩니다.
후자의 경우 HAX (Native intel instructions)를 설치하여 에뮬레이터를 최적화하거나 AVD 프로필 편집기를 사용하여 하드웨어 가속을 활성화하십시오.
제 경우에는 에뮬레이터의 여러 인스턴스를 실행할 때만이 문제가 발생했습니다.
Android SDK ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe
)에 제공된 Intel HAXM (Hardware Accelerated Execution Manager) 설치 프로그램을 다시 실행하고 변경을 선택한 다음 HAXM에 할당 된 메모리 양을 확인합니다. 2GB 이하인 경우 최소 4GB로 늘리는 것이 좋습니다. 그런 다음 에뮬레이터를 다시 시작하고 CPU 사용량이 떨어지는 지 확인합니다.
모니터의 프레임 속도를 60hz로 설정하여 에뮬레이터의 CPU 사용량을 줄였습니다. 그것은 144hz에 있었고 내 CPU는 60 %-70 %에서 실행되었습니다. 모니터의 프레임 속도 만 변경하면 이제 3 % 사용량이됩니다.
Changing the resolution worked form me. I was using 1440 x 2560 560 dpi Oreo 8.1. Now im using M-DPI Oreo 8.1
Disable location in settings and also disable touch sounds.
Update:
I have installed Genymotion plugin at genymotion.com/plugins, and it has an amazing performance
'IT TIP' 카테고리의 다른 글
d3.scale.category10 ()에 해당하는 d3.js v4.0은 무엇입니까? (0) | 2020.10.29 |
---|---|
왜 이것이 기본 생성자없이 컴파일되지 않습니까? (0) | 2020.10.29 |
C #에서 Exception 개체를 직렬화하는 방법은 무엇입니까? (0) | 2020.10.28 |
PHP는 특정 문자열 앞의 모든 문자를 제거합니다. (0) | 2020.10.28 |
회전을 통해 DialogFragment를 올바르게 유지하는 방법은 무엇입니까? (0) | 2020.10.28 |