与真实硬件相比,在虚拟机中执行的基准测试的可信度如何?
让我们剖析一个具体的情况。假设我们想要对最近代码更改的性能影响进行基准测试。为简单起见,假设工作负载完全受 CPU 限制(尽管 IO 限制和混合工作负载也很重要)。假设这台机器在 VirtualBox 下运行,因为它是最好的;)
假设我们测量了原始代码和新代码,新代码速度提高了 5%(在虚拟机中进行基准测试时)。我们是否可以有把握地声称它在真实硬件上也至少会快 5%?
更重要的是,假设新代码慢了 3%。我们能否完全确定在真正的硬件上它会慢 3% 或更少,但绝对不会低于3%?
更新:我最感兴趣的是你的战场结果。IE。你能见证一个例子,在虚拟机中慢 10% 的代码在真铁上执行快 5%,反之亦然?还是它总是一致的(即如果它在 VM 中更快/更慢,它在真实机器上总是成比例地更快/更慢)?到目前为止,我的或多或少是一致的;至少,总是朝着同一个方向前进。