Pop!_OS - AVD com desempenho horrível

Pessoal, meu AVD está com um desempenho porquíssimo. Extremamente lento.

Todo o sistema está bastante fluido, ainda que o notebook esteja fora da fonte (claro que no caso do AVD, estou usando com o note na fonte). Mas mesmo com os gráficos estando em nvidia (uso hybrid), performance (tanto no nvidia settings quanto o seletor do pop os), o avd continua horrível.

Tem ram de sobra o que me faz crer que não é ram (dediquei 4gb pro avd, tenho ao todo 24gb).

Tem algo que devo ativar manualmente no pop os? Porque no Ubuntu e no Regata OS o avd roda liso, só no pop os que não

inclusive eu subia mais de um emulador tranquilamente no ubuntu e usava tranquilo, no pop os não consigo usar nem um porque é extremamente lento

Por essas coisas q até hj me mantenho no Ubuntu. N sei o q a canonical faz mas internamente é como se ele fosse mais bem “lapidado” sem grandes problemas pro usuário no dia a dia.

1 Curtida

Você verificou se a ativou a aceleração? Pode ser uma boa você mandar seu hardware-qemu.ini do avd.

Digitei no terminal, mas não retornou resultado. Poderias me dar mais detalhes?

No AVD Manager, em performance, selecionei Hardware GLES 2.0 (que é o que eu costumava usar)

Este arquivo fica na pasta do AVD:

.android/avd/seu_AVD.avd/

Outra questão que pode ajudar é, use sempre APIs mais recentes, a aceleração é muito melhor em versões mais recentes do Android, estes também são mais leves que versões anteriores do android. Por exemplo a APi 30.

Eu também aconselho a não ficar com os defaults no que tange a memória, eu aumento a ram para 2 GB no mínimo e a VM heap para 512.

 Large_Device_API_30_-AMENITY_STAGING.avd cat hardware-qemu.ini
hw.cpu.arch = x86
hw.cpu.model = qemu32
hw.cpu.ncore = 4
hw.ramSize = 4096
hw.screen = multi-touch
hw.mainKeys = false
hw.trackBall = false
hw.keyboard = true
hw.keyboard.lid = false
hw.keyboard.charmap = qwerty2
hw.dPad = false
hw.rotaryInput = false
hw.gsmModem = true
hw.gps = true
hw.battery = true
hw.accelerometer = true
hw.gyroscope = true
hw.audioInput = true
hw.audioOutput = true
hw.sdCard = false
disk.cachePartition = true
disk.cachePartition.path = /home/william/.android/avd/Large_Device_API_30_-AMENITY_STAGING.avd/cache.img
disk.cachePartition.size = 66m
test.quitAfterBootTimeOut = -1
test.delayAdbTillBootComplete = 0
test.monitorAdb = 0
hw.lcd.width = 1440
hw.lcd.height = 2560
hw.lcd.depth = 16
hw.lcd.density = 560
hw.lcd.backlight = true
hw.lcd.vsync = 60
hw.gltransport = pipe
hw.gltransport.asg.writeBufferSize = 1048576
hw.gltransport.asg.writeStepSize = 4096
hw.gltransport.asg.dataRingSize = 32768
hw.gltransport.drawFlushInterval = 800
hw.displayRegion.0.1.xOffset = -1
hw.displayRegion.0.1.yOffset = -1
hw.displayRegion.0.1.width = 0
hw.displayRegion.0.1.height = 0
hw.displayRegion.0.2.xOffset = -1
hw.displayRegion.0.2.yOffset = -1
hw.displayRegion.0.2.width = 0
hw.displayRegion.0.2.height = 0
hw.displayRegion.0.3.xOffset = -1
hw.displayRegion.0.3.yOffset = -1
hw.displayRegion.0.3.width = 0
hw.displayRegion.0.3.height = 0
hw.display1.width = 0
hw.display1.height = 0
hw.display1.density = 0
hw.display1.xOffset = -1
hw.display1.yOffset = -1
hw.display1.flag = 0
hw.display2.width = 0
hw.display2.height = 0
hw.display2.density = 0
hw.display2.xOffset = -1
hw.display2.yOffset = -1
hw.display2.flag = 0
hw.display3.width = 0
hw.display3.height = 0
hw.display3.density = 0
hw.display3.xOffset = -1
hw.display3.yOffset = -1
hw.display3.flag = 0
hw.gpu.enabled = true
hw.gpu.mode = host
hw.initialOrientation = Portrait
hw.camera.back = virtualscene
hw.camera.front = emulated
vm.heapSize = 576
hw.sensors.light = true
hw.sensors.pressure = true
hw.sensors.humidity = true
hw.sensors.proximity = true
hw.sensors.magnetic_field = true
hw.sensors.magnetic_field_uncalibrated = true
hw.sensors.gyroscope_uncalibrated = true
hw.sensors.orientation = true
hw.sensors.temperature = true
hw.sensor.hinge = true
hw.sensor.hinge.count = 0
hw.sensor.hinge.type = 0
hw.sensor.hinge.sub_type = 0
hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture = 1
hw.sensor.roll = false
hw.sensor.roll.count = 0
hw.sensor.roll.resize_to_displayRegion.0.1_at_posture = 6
hw.sensor.roll.resize_to_displayRegion.0.2_at_posture = 6
hw.sensor.roll.resize_to_displayRegion.0.3_at_posture = 6
hw.sensors.heart_rate = false
hw.useext4 = true
hw.arc = false
hw.arc.autologin = false
kernel.path = /home/william/Android/Sdk/system-images/android-30/google_apis/x86//kernel-ranchu-64
kernel.newDeviceNaming = yes
kernel.supportsYaffs2 = no
disk.ramdisk.path = /home/william/Android/Sdk/system-images/android-30/google_apis/x86//ramdisk.img
disk.systemPartition.initPath = /home/william/Android/Sdk/system-images/android-30/google_apis/x86//system.img
disk.systemPartition.size = 3083m
disk.vendorPartition.initPath = /home/william/Android/Sdk/system-images/android-30/google_apis/x86//vendor.img
disk.vendorPartition.size = 800m
disk.dataPartition.path = /home/william/.android/avd/Large_Device_API_30_-AMENITY_STAGING.avd/userdata-qemu.img
disk.dataPartition.size = 32g
disk.encryptionKeyPartition.path = /home/william/.android/avd/Large_Device_API_30_-AMENITY_STAGING.avd/encryptionkey.img
PlayStore.enabled = false
avd.name = Large_Device_API_30_-_AMENITY_STAGING
avd.id = Large_Device_API_30_-_AMENITY_STAGING
fastboot.forceColdBoot = false
android.sdk.root = /home/william/Android/Sdk
android.avd.home = /home/william/.android/avd

encontrei aqui

Seu .ini está ok… Rodando o avd pelo terminal você vê algum alerta relevante ou falha nas mensagens?

emulator -avd Large_Device_API_30_-_AMENITY_STAGING

Se o nome estiver errado essa lista pode ajudar:

emulator -list-avds

Tbm rodei esse comando sysctl que recomenda, testei novamente o emulador e continua não fluido :frowning: Sendo que eu usava normalmente

Talvez reduzindo a resolução tente mudar para 1080x1920.

Se não for isso, minha única possível suposição é que ou você tem componentes faltando no SDK, ou você não tem VT-d ativado na bios, ou que quem sabe, usar intel_iommu=on na sua linha de comando do grub possa melhorar a performance.

Sobre o SDK, tenho tudo baixado (não obsoletos). Sobre ativar na bios, não sei se chega a ser o caso, porque não fiz nenhuma alteração em relação a isso quando usei ambos Ubuntu e RegataOS. (Só para esclarecer, saí de ambas as distros por bugs em outras áreas).

Minha resolução de tela já é essa. Experimentei diminuir o refresh rate de 120hz para 60 e 59 e também nenhum resultado positivo :confused:

Também checkei esse link Configure hardware acceleration for the Android Emulator

➜  ~ Android/Sdk/emulator/emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.
accel
➜  ~ egrep -c '(vmx|svm)' /proc/cpuinfo
16
➜  ~ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
➜  ~ 

Complicado. :face_with_raised_eyebrow:

A minha última sugestão é investigar esta página:

Ha algumas coisas ali que você pode investigar, algumas pessoas também sugerem ativar o quick boot se a VM estiver lenta ao rodar junto do Android Studio.

1 Curtida