Производительность эмулятора Android на Linux
Я установил Android SDK и плагин Eclipse на свой ноутбук, но я был удивлен, обнаружив, что эмулятор съедает 100% одного из моих ядер процессора. У меня точно такая же настройка на настольном компьютере, у которого нет этой проблемы. Оба компьютера работают под управлением Linux, и оба были обновлены вчера.
Конечно, настольный компьютер имеет лучшее аппаратное обеспечение, чем ноутбук, но я ожидал, что он приблизится к 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 с тактовой частотой 2 ГГц и 2 ГБ оперативной памяти.
Настольный компьютер оснащен процессором AMD Phenom II X4 940 @ 3GHz с 8 ГБ оперативной памяти.
Эмулятор Android использует только 1 ядро, и вот результаты использования процессора:
Ноутбук:
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, и после запуска он не использовал 100% ядра процессора в отличие от Linux. Кроме того, я попытался запустить эмулятор с терминала в Linux, и я получаю это сообщение, когда я не получаю его под настольным Linux-хостом:
Не удалось настроить /dev/hpet для таймера 1024 Гц. Это не фатальная ошибка, но для лучшей точности эмуляции введите: 'echo 1024 > /proc/sys/dev/hpet/max-user-freq' от имени пользователя root.
Я не очень знаком с rtc или hpet, но не похоже, что настройка max-user-freq что-то делает, я все равно получаю то же предупреждение.
2 ответа
Скорее всего, ваш процессор AMD обгоняет Intel больше, чем вы думаете. Вы можете попробовать эмулировать дисплей меньшего размера при работе на ноутбуке, или вы можете запустить удаленный эмулятор на вашем рабочем столе, используя NX или аналогичный.
Есть также x86-порты Android, которые предположительно работают намного быстрее (учитывая, что они работают на виртуальной машине, а не на эмуляции), но у меня нет опыта их использования.
Есть много способов повысить производительность эмулятора Android. Первый и самый простой способ - увеличить объем оперативной памяти, а также включить снимок
Вы также можете попробовать уменьшить разрешение, если не делаете что-то, не связанное с высоким разрешением.
Но самый эффективный метод - загрузка образа Intel x86. Если ваш процессор поддерживает виртуализацию (VT), то также установите Intel HAXM, производительность будет значительно увеличена.
Вы также можете попробовать Android x86 (учебник здесь) в виртуальной машине и использовать adb connect IP
команда, как отладка в реальном устройстве через Wi-Fi.