Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在虚拟机上评估程序的性能 我在Ubuntu上运行C++代码(VMware工作站9)。现在,基本上我有三个不同的函数用C++编写。我想在使用valgrind cachegrind的平均memeory访问数的基础上对这三种方法进行比较。现在,我想弄清楚这是否会影响我的比较,即我在虚拟机而不是主机上运行这三个函数_C++_Performance_Benchmarking - Fatal编程技术网

在虚拟机上评估程序的性能 我在Ubuntu上运行C++代码(VMware工作站9)。现在,基本上我有三个不同的函数用C++编写。我想在使用valgrind cachegrind的平均memeory访问数的基础上对这三种方法进行比较。现在,我想弄清楚这是否会影响我的比较,即我在虚拟机而不是主机上运行这三个函数

在虚拟机上评估程序的性能 我在Ubuntu上运行C++代码(VMware工作站9)。现在,基本上我有三个不同的函数用C++编写。我想在使用valgrind cachegrind的平均memeory访问数的基础上对这三种方法进行比较。现在,我想弄清楚这是否会影响我的比较,即我在虚拟机而不是主机上运行这三个函数,c++,performance,benchmarking,C++,Performance,Benchmarking,我在某处读到: “如果要将VM上的结果与未在VM上运行的结果进行比较,则 不,结果不可信。另一方面,如果两种测试 他们在相同的环境中运行,是的,结果是可信的。 在VM中,这两个测试都会比较慢,但差异应该仍然存在 要有公信力。” 更多详情: 我有三个C++编写的应用程序代码。每个应用程序都有一个名为CheckInput()的函数。此CheckInput函数在每个应用程序中执行不同的算法。因此,我感兴趣的是,当产品针对特定硬件时,哪个应用程序的CheckInput功能将在更少的内存访问次数下完成其工

我在某处读到:

“如果要将VM上的结果与未在VM上运行的结果进行比较,则 不,结果不可信。另一方面,如果两种测试 他们在相同的环境中运行,是的,结果是可信的。 在VM中,这两个测试都会比较慢,但差异应该仍然存在 要有公信力。”

更多详情:


我有三个C++编写的应用程序代码。每个应用程序都有一个名为CheckInput()的函数。此CheckInput函数在每个应用程序中执行不同的算法。因此,我感兴趣的是,当产品针对特定硬件时,哪个应用程序的CheckInput功能将在更少的内存访问次数下完成其工作

通过额外的抽象层评估性能是一个好主意

你的虚拟机堆栈会给你的应用程序添加很多无用的头文件,就像你引用的那样:“如果你比较一个虚拟机上的结果和一个虚拟机上没有运行的结果,那么不,结果是不可信的。”,你可能会在两个环境中得到非常不同的结果


由于Cachegrind正在监视您的CPU缓存,因此结果可能与您在VM上的结果有很大不同,因为像VmWare这样的虚拟机监控程序可能会使用自己的缓存百分比来运行您的代码。

好吧,但如果我比较VM上的所有三个函数,那么我仍然可以知道哪一个性能更好?如果我在没有虚拟机的情况下运行这三个函数,我也会得到同样的想法,但是这次不会有虚拟机造成的开销。没错!您可以决定哪一个功能执行得最好,只要它们在相同的环境中进行了基准测试。