Instalei o plug-in android SDK e eclipse no meu laptop, mas fiquei surpreso ao descobrir que o emulador consome 100% de um dos meus núcleos de cpu. Eu tenho exatamente a mesma configuração em uma máquina desktop que não tem esse problema. Ambos os computadores estão executando o arch linux e ambos foram atualizados ontem.
Admito que a área de trabalho tem um hardware melhor que o laptop, mas eu esperava ficar mais perto de 50% do uso da CPU do que de 100% no laptop.
Ambos os dispositivos virtuais Android têm as mesmas especificações:
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
O computador portátil tem uma CPU Intel Core 2 T7200 @ 2GHz com 2Gb de RAM.
O host de desktop possui processador AMD Phenom II X4 940 @ 3GHz com 8 GB de RAM.
O emulador android usa apenas 1 núcleo e aqui estão os resultados de uso da CPU:
Laptop:
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
Desktop:
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
Existe alguma maneira de melhorar o desempenho do emulador no laptop?
[UPDATE] Eu corri o emulador com as mesmas configurações, no mesmo laptop no Win7 e depois de iniciar, ele não usa 100% de um núcleo de CPU ao contrário do Linux. Além disso, tentei executar o emulador a partir de um terminal no Linux e recebo esta mensagem quando não o obtenho no host Linux de desktop:
Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a
fatal error, but for better emulation accuracy type: 'echo 1024 >
/proc/sys/dev/hpet/max-user-freq' as root.
Eu não estou familiarizado com o rtc ou hpet, mas não parece que a configuração max-user-freq faz alguma coisa, eu ainda recebo o mesmo aviso.