我正在ubuntu上运行c++代码( Vmware工作站9)。现在,我基本上有三个用c++编写的不同的函数。我想对这三种方法进行比较,根据平均访问数进行比较。现在,我想说明这是否会影响我的比较:我是在虚拟机上运行这三个函数,而不是在主机上运行?
在某个地方我读到:
“如果您将VM上的结果与VM上未运行的结果进行比较,则结果是不可信的。另一方面,如果两个测试都在相同的环境中运行,则结果是可信的。这两个测试在VM中的速度都会更慢,但两者之间的差异仍然应该是可信的。”
更多详细信息:
我有三个用c++编写的应用程序代码。每个应用程序都有一个名为CheckInput()的函数。这个CheckInput函数在每个应用程序中执行不同的算法。因此,我感兴趣的是哪个应用程序的CheckInput功能将在较少的内存访问中完成它的工作
发布于 2014-03-16 12:15:03
当产品针对特定硬件时,通过附加抽象层评估性能是很少是的好主意。
您的虚拟机堆栈将为应用程序添加许多无用的头,正如您引用的话:“如果您将VM上的结果与VM上未运行的结果进行比较,则结果是不可信的。”,在这两种环境中,您可能会得到非常不同的结果。
由于Cache研磨正在监视您的CPU缓存,所以结果可能与您在VM上的结果大不相同,因为像VmWare这样的管理程序可能会占用它们自己的百分比来运行您的代码。
https://stackoverflow.com/questions/22436580
复制相似问题