我用C ++编写了一个简短的程序,该程序基本上是一种通过for循环通过一些数学计算填充双精度数组的方法,目的是进行性能测量和比较。我注意到,如果我通过命令行运行exe文件(只需键入文件名并输入),与通过双击运行它相比,从std::chrono
(将方法包装在主方法中)得到的结果要好得多。文件。有谁知道为什么会有这种性能差异?
编辑-这是函数:
double* MakeCalc()
{
double* retval = new double[5000 * 5000];
int ind = 0;
for (int i = 0; i < 5000; i++)
{
for (int j = 0; j < 5000; j++)
{
retval[ind++] = i * j;
}
}
delete[] retval;
return retval;
}
main function
int main()
{
auto start = chrono::high_resolution_clock::now();
MakeCalc();
auto end = chrono::high_resolution_clock::now();
auto duration = chrono::duration<float>(end - start);
std::cout << "execution time: " << duration.count() <<" sec" << '\n';
system("pause");
return 0;
}