Android模拟器性能极不稳定

the*_*ear 6 memory cpu performance android qemu

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

我有一台相对较新的电脑,配备 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

Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  • 为 emu 分配更多 RAM(5 GB 和 8 GB),实际上感觉速度更慢,并且与更多 RAM 更不一致
  • 关闭其他程序
  • 不同的调整(都不起作用)

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

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

我有时也会得到这样的信息:

在此输入图像描述

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

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

Ska*_*ane 3

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

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

要禁用此行为:

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

    图像

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

    图像

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

    图像

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

    图像

  5. 它会要求您重新启动模拟器,单击“是”

    图像

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

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

注意:此修复完全破坏了快速启动,并且使用此修复程序时模拟器将始终冷启动。我认为公平的权衡!