为什么 Virtual Box 显示的单核分数比主机 CPU 本身更高?

为什么 Virtual Box 显示的单核分数比主机 CPU 本身更高?

运行最新 Linux Manjaro 的 Virtual Box 6.1 Host 是 Windows 10 专业版。PC 是英特尔酷睿 i9-12900K,16 核,128 GB。

我的虚拟盒设置是使用 50 GB 的 RAM 和 8 个核心。

我还确保禁用 Windows 10 上的 Hyper-V,以获得 Virtual Box 的最佳性能。

我运行了相同的 Geekbench CPU 测试,有一次在运行 Linux 的 Virtual Box 中,单核得分为2022

然后下载了相同的 Geekbench 软件,并在 Windows 10 中直接运行相同的 CPU 测试,它现在给出分数1745

以下是每个完整报告结果的直接链接。

在此处输入图片描述

Windows 上的多核分数更高,因为它有 16 个核心,但我的 Virtual Box 设置只分配了 8 个核心。所以我可以理解主机 Windows 上的多核分数会高于客户机。

我的问题是,为什么 Virtual Box 在相同测试中的得分比主机本身高?我原本以为在一台机器上运行会产生更好的性能。这令人惊讶。

这是否意味着即使在 Virtual Box 中运行,Linux 也比 Windows 10 更快?那么,如果我在同一台 PC 上用 Linux 替换 Windows,这个分数会比现在在 Virtual Box 中使用 Linux 时更高吗?

我的 Virtual Box 设置的屏幕截图。KVM 用于虚拟化。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

更新

回复以下评论

您能检查一下虚拟机 CPU 是否支持 AV512 吗?

以下是在 Virtual Box 上运行的 Linux 内部的信息

>cat /proc/cpuinfo 
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 151
model name  : 12th Gen Intel(R) Core(TM) i9-12900K
stepping    : 2
cpu MHz     : 3187.200
cache size  : 30720 KB
physical id : 0
siblings    : 8
core id     : 0
cpu cores   : 8
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 22
wp      : yes

    flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm 
constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni 
pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave 
avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single tpr_shadow 
vnmi flexpriority vpid fsgsbase avx2 invpcid rdseed clflushopt md_clear 
flush_l1d arch_capabilities

vmx flags   : vnmi flexpriority tsc_offset vtpr vapic
bugs        : spectre_v1 spectre_v2 spec_store_bypass swapgs
bogomips    : 6376.00
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

答案1

关于这个问题有很长的讨论在 Geekbench 论坛上。从该讨论中可以清楚地看出,您不能期望将 Windows 和 Linux 的分数相互比较,尽管不清楚为什么会这样。

感谢您告知我们此事,我很抱歉回复延迟。这两种配置的分数偏差略大于正常值,但对于给定机器上的两次运行之间的差异而言,这并不罕见。一些特定的工作负载分数(主要是 HTML5 DOM 分数)显示出意外的差异,这可能是硬件问题或间歇性后台进程的结果,尽管从两个结果来看,很难对其原因得出确切的结论。

Linux 和 Windows 使用的编译器不同。有关每个平台使用的编译器的一些详细信息,请参阅我们关于单个 Geekbench 4 CPU 工作负载的页面。目前,没有计划改变 Geekbench 在特定平台上的编译方式。尽管编译器不同,但 Geekbench 应该会为同一硬件生成平均相似的分数,尽管分数可能会略有波动。

答案2

我想补充一点,Linux 对虚拟化 Linux 进行了一些优化。因此,如果您将 KVM/QEMU 作为虚拟机管理程序运行,则将 Linux 虚拟化为主机时的开销将比将 Windows 虚拟化为主机时的开销要小。

因此 Virtual Box 可能也比 Windows 更适合 Linux 仿真。我会尝试在没有虚拟化层的情况下在两个系统上运行基准测试并比较结果。

相关内容