我在笔记本电脑上安装了 android SDK 和 eclipse 插件,但令我惊讶的是,模拟器占用了我的一个 CPU 核心的 100%。我在一台没有这个问题的台式机上安装了完全相同的设置。两台电脑都运行的是 arch linux,昨天都更新了。
诚然,台式机的硬件比笔记本电脑更好,但我预计笔记本电脑的 CPU 使用率会更接近 50%,而不是 100%。
两个 Android 虚拟设备具有相同的规格:
CPU: ARM
Target: Android 2.3.3 - API Level 10
Skin: WVGA800
SD Card: 512M
hw.lcd.density: 240
vm.heapSize: 24
hw.ramSize: 256
笔记本电脑主机配备 Intel Core 2 T7200 @ 2GHz CPU 和 2Gb RAM。
台式机主机配备 AMD Phenom II X4 940 @ 3GHz CPU 和 8Gb RAM。
Android 模拟器仅使用 1 个核心,以下是 CPU 使用率结果:
笔记本电脑:
Cpu0 : 22.8%us, 76.5%sy, 0.0%ni, 0.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu1 : 11.2%us, 2.4%sy, 0.0%ni, 86.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2055484k total, 1860304k used, 195180k free, 5276k buffers
Swap: 2000088k total, 106872k used, 1893216k free, 350780k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2026 xyz 20 0 396m 207m 7192 R 100 10.3 4:11.58 emulator-arm
桌面:
Cpu0 : 0.7%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 1.3%us, 0.0%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 5.0%us, 1.3%sy, 0.0%ni, 91.9%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7666324k total, 6506808k used, 1159516k free, 1650960k buffers
Swap: 8988348k total, 0k used, 8988348k free, 2867300k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2811 xyz 20 0 392m 220m 6276 S 8 2.9 0:33.58 emulator-arm
有什么方法可以提高笔记本电脑上的模拟器性能?
[更新] 我使用相同的设置在同一台笔记本电脑的 Win7 上运行了模拟器,启动后,与 Linux 不同,它没有使用 100% 的 CPU 核心。此外,我尝试从 Linux 中的终端运行模拟器,当我在桌面 Linux 主机下没有收到此消息时,我收到了此消息:
无法将“/dev/hpet”配置为具有 1024Hz 计时器。这不是致命错误,但为了获得更好的模拟准确性,请以 root 身份输入:“echo 1024 > /proc/sys/dev/hpet/max-user-freq”。
我不太熟悉 rtc 或 hpet,但似乎 max-user-freq 设置没有任何作用,我仍然收到相同的警告。
答案1
您的 AMD 处理器很可能比您想象的要好得多。您可以尝试在笔记本电脑上运行时模拟较小的显示尺寸,或者您可以考虑在桌面上远程运行模拟器,使用NX或类似的东西。
Android 的 x86 端口据称运行速度要快得多(因为它们在虚拟机中运行,而不是被模拟),但我没有使用它们的经验。