การใช้งาน CPU สูงกับโปรแกรมจำลอง Android (qemu-system-i386.exe)


116

การใช้ cpu จำลอง qemu-system-i386.exe เกือบจะทำงานตลอดเวลาระหว่าง 7 ~ 9

Android studio 2.1 Android SDK เครื่องมือ: 25.1.3 โฮสต์ระบบปฏิบัติการ: Windows 7 - i7 2630QM - 8GB Ram Intel x86 Atom System Image ติดตั้ง

ไม่ว่าฉันจะเปลี่ยนการตั้งค่าใดในโปรแกรมจำลองเช่นประสิทธิภาพการจำลอง, ซีพียูแบบมัลติคอร์, ภาพ x86-64 ก็ยังเหมือนเดิมเสมอ

มันเป็นแฟนที่น่ารำคาญจริงๆตลอดเวลา

ใครมีวิธีแก้ไขปัญหานี้


1
โดยส่วนตัวแล้วฉันชอบใช้Visua Studio Emulator สำหรับ Androidเพียงเพราะฉันไม่เคยเห็นอะไรที่มีประสิทธิภาพขนาดนี้ทั้งประสิทธิภาพที่ชาญฉลาดและการใช้ทรัพยากรโฮสต์ แม้ว่าจะต้องเปิดใช้งาน Hyper-V บนโฮสต์
Matei Radu

ฉันจะลองตอนนี้ขอบคุณสำหรับคำแนะนำ
skystar7

ขออภัยสำหรับความหวังที่ผิดพลาด แต่ตอนนี้ฉันพบว่า Windows 7 ไม่มี Hyper-V ดังนั้นอีมูเลเตอร์จึงไม่สามารถทำงานบนโฮสต์ของคุณได้
Matei Radu

1
ไม่เป็นไร :) ... ฉันกำลังทดสอบกับปลั๊กอินGenymotion
skystar7

คำตอบ:


182

สาเหตุของการใช้งาน CPU คงที่อาจเป็นเสียง หากคุณไม่ต้องการเสียงในโปรแกรมจำลองของคุณคุณสามารถปิดใช้งานได้โดยแก้ไขไฟล์กำหนดค่าของ AVD

เปลี่ยน / เพิ่มสองบรรทัดนั้น

hw.audioInput=no
hw.audioOutput=no

อัปเดต: ตามที่ buncis แสดงความคิดเห็นคุณสามารถลองปิด GPS ได้หากไม่จำเป็น:

hw.GPS = no 

บนLinux / Macไฟล์จะอยู่ที่ ~ / .android / avd / <AVD_Name> .avd / config.ini
บนWindowsไฟล์จะอยู่ที่ C: \ Users \ <username> \ .android \ avd \ <AVD_Name> avd \ config.ini


22
ไม่ทำงานบน Mac ของฉัน - ยังคงได้รับการใช้งาน CPU สูง
ลีแอนน์

1
@antoine: สิ่งนี้ช่วยแก้ปัญหาของฉันได้จริง - ฉันแก้ไขไฟล์ config.ini ผิด การรีสตาร์ทก็ไม่ได้รับบาดเจ็บเช่นกัน
ลีแอนน์

1
ขอบคุณ! ลดลงจาก ~ 50% เป็น ~ 1-3%
mehmet6parmak

3
นอกจากนี้ยังควรปิดการใช้งาน GPS หากคุณไม่ได้ใช้งานhw.GPS = no
buncis

2
@buncis ขอบคุณหลังจากปิดการใช้งาน gps เท่านั้น
Max Zonov

22

บน Mac ฉันสังเกตเห็นว่าโปรแกรมจำลองใช้ CPU มากกว่า 100% หลังจากที่แล็ปท็อปเข้าสู่โหมดสลีป การปิดเสียงตามที่ Benjamin แนะนำไม่ได้ช่วยแก้ปัญหานั้น

การรีสตาร์ทอุปกรณ์จำลองโดยการกดปุ่มเปิด / ปิดบนโปรแกรมจำลองเป็นเวลานานสำหรับฉัน


คุณสามารถเปลี่ยนเป็นโคลด์บูตได้ในการตั้งค่าหากคุณแก้ไขอุปกรณ์
Stefano

19

การใช้โปรแกรมจำลอง x86_64 (หรือ 64 บิต) ช่วยแก้ปัญหาให้ฉันได้ พวกเขาแนะนำรุ่น x86 แต่มันทำงานให้ฉัน


4
สิ่งนี้ดูเหมือนจะจำเป็นใน MacOS
Rasmusob

1
ช่วยฉันได้มาก (macOS Mojave)
Amir J

นั่นเป็นวิธีแก้ปัญหาอย่างน้อยสำหรับ Mac - ความแตกต่างอย่างมาก
Lacho Tomov

13

หากต้องการทราบว่าบนอุปกรณ์เสมือนใช้ CPU มากที่สุด:

adb shell

$ top

นี่จะแสดงรายการกระบวนการที่มีการใช้งาน CPU สูงสุดบนยอด

สิ่งนี้จะช่วยให้คุณระบุได้ว่าเป็นกระบวนการ (เช่นแอปของคุณ) ภายในโปรแกรมจำลองกระบวนการอื่นภายในโปรแกรมจำลองหรือเพียงแค่การจำลองตัวเองโดยใช้ CPU จำนวนมาก

ในกรณีหลังให้ลองปรับแต่งโปรแกรมจำลองให้เหมาะสมโดยติดตั้ง HAX (Native intel instructions) หรืออาจเปิดใช้งานการเร่งฮาร์ดแวร์โดยใช้ตัวแก้ไขโปรไฟล์ AVD


8

ฉันมีปัญหานั้นเมื่อต้นเดือนพฤศจิกายน 2018

อุปกรณ์เสมือนพยายามเชื่อมต่อกับข้อมูลเครือข่ายมือถืออย่างสม่ำเสมอดังนั้นฉันจึงปิดอุปกรณ์ภายในตัวเครื่อง ทำงานได้ดีในขณะนี้


8

ปัญหาเดียวกันกับ qemu บน Win7, HAXM 7.2.0 ฉันได้ลองปิดเสียงแล้วก็ไม่ได้ผล qemu ใช้ CPU ประมาณ 20% ได้ตลอดเวลา Android ทำงานช้ามากทั้งบนภาพ x86 และ x64

ฉันพบโซลูชันในไฟล์ Release Notes ของ HAXM:

  • บน Windows, ป้องกันไวรัส Avastอาจรบกวน HAXM และสาเหตุของ Android Emulator หรือQEMU ทำงานช้ามาก วิธีแก้ปัญหาคือยกเลิกการเลือก "ใช้การจำลองเสมือนแบบซ้อนกันหากมี" ในการตั้งค่า Avast> การแก้ไขปัญหา

ฉันมี Avast Pro Antivirus 18.5 ฉันได้ยกเลิกการเลือกพารามิเตอร์นี้รีบูตพีซีและตอนนี้ qemu ใช้งาน 0% เมื่อไม่มีการใช้งาน Android ทำงานได้ดี

อัปเดต: หาก QEMU เริ่มใช้ CPU อีกครั้งให้ตรวจสอบสถานะการอัปเดตของ Avast ก่อน หลังจากการอัปเดตพื้นหลัง Avast อาจเริ่มรบกวน HAXM อีกครั้ง เพียงรีบูต Windows เพื่อแก้ปัญหา


1
OMG ... ทำงานได้อย่างสมบูรณ์แบบ หลังจากปิดใช้งาน Avast เป็นเวลา 10 นาทีการใช้งาน CPU ลดลงเหลือ 15% และหลังจากรีบูตเครื่องเหลือ 1.4% ขอบคุณมาก!
Ali.DM

1
Avast ... ก็เป็นปัญหาสำหรับฉันเช่นกัน
xcesco

นี่น่าทึ่งมาก การใช้งาน CPU ลดลงเหลือ 4% จาก 50% ขอบคุณ @Nexus
Zaheer

3

กรณีของฉันเพราะฉันเลือกsoftwareสำหรับการแสดงผลกราฟิกใน adv. ดังนั้นหลังจากเปลี่ยนการhardwareลดการใช้ CPU จาก 60 เป็น 10 และอุณหภูมิ CPU จาก 70 เป็น 40


สิ่งนี้ดูเหมือนจะใช้ได้ผลสำหรับฉัน บนซอฟต์แวร์โปรแกรมจำลองมักจะรัน ~ 106 ตลอดเวลา การเปลี่ยนไปใช้ฮาร์ดแวร์จะทำงานประมาณ ~ 24 แต่สามารถสูงสุดได้มากกว่า ~ 200 เมื่อโต้ตอบกับโปรแกรมจำลอง แต่จะลดลงอย่างรวดเร็วถึง ~ 24 เมื่อไม่โต้ตอบ นี่ดูเหมือนจะเป็นทางออกที่ดีที่สุดแทนที่จะต้องอัปเดตการตั้งค่าการกำหนดค่าที่คุณอาจต้องเปิดใช้ในภายหลัง
ant2009

3

ฉันใช้macOS Catalina (เวอร์ชัน 10.15.2) ที่มี Intel Core i9 และ 16 GB RAM และกราฟิก Radeon Pro 560X 4GB

ฉันจะแก้ไขใช้งาน CPU สูง qemu โดยการรีสตาร์ทอุปกรณ์เทิดทูนโดยใช้ปุ่มเพาเวอร์เทิดทูน

นอกจากนี้ในขณะที่สร้าง AVD ฉันเลือกHardwareGraphics Renderer แทนAuto.


2

ฉันลดการใช้งาน CPU ของโปรแกรมจำลองของฉันโดยตั้งค่าเฟรมเรตของจอภาพเป็น 60hz มันอยู่ที่ 144hz และ CPU ของฉันทำงานที่ 60% - 70% ด้วยการเปลี่ยนเฉพาะเฟรมเรตของจอภาพตอนนี้ก็อยู่ที่การใช้งาน 3%


คุณสามารถแนะนำว่าคุณทำที่ไหน?
Ajit Kumar Dubey

ในคุณสมบัติจอภาพของคุณจะมีตัวเลือกสำหรับอัตราการรีเฟรชหน้าจอ ตั้งค่าเป็น 60hz หรือน้อยกว่า
soniiic

2

ฉันไม่สามารถปิดเสียงด้วยไฟล์ config.ini ได้ แต่ใช้อาร์กิวเมนต์บรรทัด -noaudio cmd กับ qemu เท่านั้น อย่างไรก็ตามด้วย Android Studio 3.2 คุณไม่สามารถเพิ่มอาร์กิวเมนต์ที่กำหนดเองให้กับโปรแกรมจำลองได้ดังนั้นฉันจึงทำสิ่งนี้:

ใน emulator dir ของ Android SDK ในกรณีของฉัน ~ / Android / Sdk / emulator /

mv emulator emulator.orig

สร้าง bash script ที่เรียกว่า emulator พร้อมเนื้อหา:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

จากนั้น:

chmod +x emulator

ตอนนี้อาร์กิวเมนต์ -noaudio จะถูกเพิ่มลงในการเรียกใช้โปรแกรมจำลองทั้งหมดจาก Android Studio และจะช่วยให้คุณประหยัดรอบ CPU ได้มาก



2

ในกรณีของฉันมันเป็นการบูตอย่างรวดเร็วที่ทำให้เกิดปัญหาการบังคับให้บูตปกติเปิดไฟล์ข้อความ C:\Users\<username>\.android\avd\<AVD name>\config.iniและเปลี่ยนค่าอย่างน้อยหนึ่งค่า

ตัวอย่างเช่นเปลี่ยนบรรทัด

hw.battery=yes 

ถึง

hw.battery=no

1

อัปเดต:

ฉันได้ติดตั้งปลั๊กอิน Genymotion ที่ genymotion.com/plugins และมีประสิทธิภาพที่น่าทึ่ง


3
Genymotion นั้นดีและรวดเร็ว แต่ไม่ฟรีสำหรับการใช้งานเชิงพาณิชย์
Gary Bak

1

ในกรณีของฉันฉันพบปัญหานี้เฉพาะเมื่อเรียกใช้โปรแกรมจำลองหลายอินสแตนซ์

เรียกใช้โปรแกรมติดตั้ง Intel Hardware Accelerated Execution Manager (HAXM) อีกครั้งที่มีให้ใน Android SDK ( <Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe) เลือกเปลี่ยนและดูว่ามีการจัดสรรหน่วยความจำให้กับ HAXM มากเพียงใด หากเป็น 2 GB หรือน้อยกว่าคุณอาจต้องการเพิ่มเป็นอย่างน้อย 4 GB จากนั้นรีสตาร์ทโปรแกรมจำลองของคุณและดูว่าการใช้งาน CPU ลดลงหรือไม่


ฉันไม่สามารถเข้าถึงปุ่มเปลี่ยนได้ (ถูกปิดใช้งาน) มีวิธีอื่นในการเข้าถึงการกำหนดค่าดังกล่าวหรือไม่
polkduran

1

ฉันแก้ไขโดยยกเลิก "บันทึกสถานะปัจจุบันอัตโนมัติไปที่ Quickboot"

สแนปชอต -> การตั้งค่า -> บันทึกสถานะปัจจุบันอัตโนมัติไปที่ Quickboot - NO


1

เมื่อเร็ว ๆ นี้ฉันมีปัญหาเดียวกันใน Windows 10 (18363): AVD ใช้ 16 เธรดทั้งหมดของโฮสต์ที่ 100% ดูเหมือนว่าandroid.hardware.graphics.composer@2.1-serviceกระบวนการใน AVD จะถูกตำหนิ

สิ่งที่ช่วยในกรณีของฉัน: ไป AVD settings- Advanced- เปลี่ยนOpenGL ES rendererไปDesktop native OpenGLและเริ่มต้น AVD ตอนนี้มันใช้ทรัพยากร CPU ของฉัน 2-3% หวังว่านี่จะช่วยใครบางคนได้


พวกคุณสุดยอดมาก ฉันใช้คำตอบส่วนใหญ่ที่เขียนไว้ด้านบนและ ur และการใช้งาน CPU ลดลงจาก 80 เป็น 30: D: D
Ashu Kumar


0

การใช้ Android เวอร์ชันเก่าฉันใช้ Lollipop Galaxy Nexus API 22 ทำให้การใช้งาน CPU ลดลงจาก220%เหลือประมาณ30% ! ...

ฉันยังเปลี่ยน: ประสิทธิภาพจำลอง> กราฟิก> ฮาร์ดแวร์

ใช้Android Api 25 ... ฮาร์ดแวร์สำหรับกราฟิกและการปิดเสียง AVD และ GPS ไม่ทำงานสำหรับฉัน ...

แพลตฟอร์ม: MacOS


0

ในกรณีของฉันมันเป็นโหมดเครื่องบินเมื่อเปิดการใช้งาน CPU จะกระโดดไปที่99% :

การใช้งาน cpu

พบปัญหาบน Android 10.0 x86


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.