首先,希望这是发布此类问题的正确场所 - 如果不是,请告诉我。
我有一台相对较新的 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
答案2
16GB 有点低,尤其是当你同时运行 GUI 时,可能还运行 Android Studio 等。请注意,32GB RAM 并不稀奇,尤其是当你在进行开发工作并运行虚拟机时(基本上就像使用 Android 模拟器一样)。事实上,我个人认为这是最低限度。
“为什么我的电脑运行缓慢?”这样的问题总是很难得到确切的答案,但您是否使用 (h)top 和/或 iotop 检查过资源使用情况?这些工具可能会为您指明正确的方向。
- 为 emu 分配更多 RAM(5 GB 和 8 GB),实际上感觉速度更慢,并且 RAM 越多就越不稳定
^^ 这让我怀疑您正在使用大量系统内存,并且内容正在进行分页,这对于旋转磁盘来说会非常慢。