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

Nas*_*ser 11 performance virtualbox windows-10

运行最新 Linux Manjaro 主机的 Virtual Box 6.1 是 Windows 10 专业版。PC 是 intel Intel Core i9-12900K,具有 16 核和 128 GB。

我的 Virtual Box 设置是使用 50 GB RAM 和 8 个内核。

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

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

然后下载相同的Geekbench软件并直接在Windows 10中运行相同的CPU测试,现在得分为1745

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

在此输入图像描述

Windows 上多核的分数更高,因为它有 16 个核心,但我对 Virtual Box 的设置仅分配了 8 个核心。所以我可以理解主机窗口上的多核分数会比来宾窗口上更高。

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

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

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

在此输入图像描述

在此输入图像描述

在此输入图像描述

更新

回复下面的评论

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

以下是虚拟机上运行的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:
Run Code Online (Sandbox Code Playgroud)

Mos*_*atz 14

Geekbench 论坛上对此有很长的讨论。从该讨论中可以清楚地看出,您不能期望将 Windows 和 Linux 的分数进行相互比较,尽管尚不清楚为什么会出现这种情况。

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

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

  • 这个答案表明差异在于操作系统之间,而不是 VirtualBox 本身。您可以尝试在 VirtualBox 中运行 Windows 并与裸机 Windows 运行进行比较吗? @纳赛尔 (11认同)
  • 不同的编译器、内存分配器、背景噪音有时会导致显着差异 (7认同)
  • @vidarlo:这就是 Geekbench 单独测试单线程性能的原因。如果只是进行多线程测试的每线程性能,那么是的,差异会更大,共享物理核心的超线程之间的竞争,以及单核和单核上最大睿频的热限制.全核。 (或者来自该 Alder Lake 系统上必须在 E 核心上运行的一些线程,因为它们实际上有 8c16t P 核心和 8 个 E 核心,总共 24 个逻辑核心) (3认同)