Android模拟器性能极不稳定

Android模拟器性能极不稳定

首先,希望这是发布此类问题的正确场所 - 如果不是,请告诉我。

我有一台相对较新的 PC,配备 16 GB RAM、第 10 代 Core i3、4 个物理核心和 4 个虚拟核心(超线程),没有 SSD。它运行 Linux Mint 并使用 KVM。

在我购买电脑后的第一年左右,模拟器运行得很好——速度很快,我可以很开心地开发我的应用程序。

几周前,我发现模拟器偶尔会变慢(准确地说是大约 50-60%)大约一两分钟,然后会在大约 1-3 分钟内变得非常快。

这很奇怪,它是这样的:

  • 启动模拟器
  • 启动速度极快
  • 2 分钟后,速度突然下降约 50% 至 60%,持续约 1-2 分钟
  • 一段时间内再次变得极快

这是我的模拟器配置统计数据:

在此处输入图片描述 在此处输入图片描述

(我有时会使用 AOSP 模拟器,但在这种情况下,我只会给出 Google API 模拟器的一个示例。)

这真是令人沮丧——我使用模拟器很多次,而且我的电脑相对较新。

电脑信息:

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i3-10105 CPU @ 3.70GHz
    CPU family:          6
    Model:               165
    Thread(s) per core:  2
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            3
    CPU max MHz:         4400.0000
    CPU min MHz:         800.0000
    BogoMIPS:            7399.70
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mc
                         a cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss 
                         ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art
                          arch_perfmon pebs bts rep_good nopl xtopology nonstop_
                         tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cp
                         l vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1
                          sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsav
                         e avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault
                          epb invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced 
                         tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase t
                         sc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed a
                         dx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsa
                         ves dtherm ida arat pln pts hwp hwp_notify hwp_act_wind
                         ow hwp_epp md_clear flush_l1d arch_capabilities
Virtualization features: 
  Virtualization:        VT-x
Caches (sum of all):     
  L1d:                   128 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    1 MiB (4 instances)
  L3:                    6 MiB (1 instance)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-7
Vulnerabilities:         
  Itlb multihit:         KVM: Mitigation: Split huge pages
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Mitigation; Clear CPU buffers; SMT vulnerable
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
                          and seccomp
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer
                          sanitization
  Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB fillin
                         g
  Srbds:                 Mitigation; Microcode
  Tsx async abort:       Not affected

我尝试过的事情:

  • 为 emu 分配更多 RAM(5 GB 和 8 GB),实际上感觉速度更慢,并且 RAM 越多就越不稳定
  • 关闭其他程序
  • 不同的调整(均无效)

我正在寻求帮助,了解如何提高模拟器的速度,因为感觉现在你需要某种 NASA 计算机或 32 GB RAM Core i9 第 12 代和 RTX 3090 才能真正获得持续的QEMU 性能——非常令人沮丧!

有人说这是由于模拟器休眠造成的,但我不知道如何禁用它。

我有时也会遇到这种情况:

在此处输入图片描述

...这也可能会导致滞后。

任何帮助都将不胜感激——我能想到的我的电脑的唯一错误是我使用了 HDD,这可能是也可能不是这个问题的根本原因。

答案1

就我而言,问题似乎是模拟器在运行时不断将快照过多地写入磁盘。

目前,不保证此选项在所有配置中可用。

要禁用此行为:

  1. 运行您的模拟器,然后单击三个点(...)以打开设置:

    图像

  2. 在设置中,点击“快照”:

    图像

  3. 切换到顶部的“设置”部分:

    图像

  4. 将“自动保存当前状态至快速启动”设置为

    图像

  5. 它会要求你重新启动模拟器,点击是的

    图像

此后模拟器将关闭。如果它没有自动重启,请继续手动重新启动。

现在您希望获得与以前一样快速的性能!

笔记:此修复完全破坏了快速启动,使用此功能时模拟器将始终进行冷启动。在我看来,这是公平的权衡!

答案2

16GB 有点低,尤其是当你同时运行 GUI 时,可能还运行 Android Studio 等。请注意,32GB RAM 并不稀奇,尤其是当你在进行开发工作并运行虚拟机时(基本上就像使用 Android 模拟器一样)。事实上,我个人认为这是最低限度。

“为什么我的电脑运行缓慢?”这样的问题总是很难得到确切的答案,但您是否使用 (h)top 和/或 iotop 检查过资源使用情况?这些工具可能会为您指明正确的方向。

  • 为 emu 分配更多 RAM(5 GB 和 8 GB),实际上感觉速度更慢,并且 RAM 越多就越不稳定

^^ 这让我怀疑您正在使用大量系统内存,并且内容正在进行分页,这对于旋转磁盘来说会非常慢。

相关内容