我正在制作开放式简历。代码是用c++编写的。我想知道程序执行所花费的时间。这只是一个基本问题。
有很多方法可以做到这一点(参见轻松测量运行时间)。一个简单的方法如下:
#include <time>
void main()
{
clock_t start_time = clock();
// Do something
clock_t end_time = clock();
float time_in_seconds = (end_time-start_time)/(float)CLOCKS_PER_SEC;
}
您有几个选择:
-
配置你的程序,这意味着在一个特殊的设置下运行它,它将修改和/或监视你的代码,并报告关于在函数/代码行上花费了多少时间的统计数据。由于您使用的是Visual Studio,根据您的版本,您可以尝试其集成的分析器或尝试像英特尔VTune或AMD CodeAnalyst
-
手动添加代码以在代码中的特定点进行时间测量。在c++和windows中,一种简单而准确的方法是将
<windows.h>
转换为QueryPerformanceCounter
。它比clock
更准确,比CPU的性能计数器更不准确,但这些在多核系统中更难利用。
第二个选项的例子:
// init
#include <Windows.h>
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
double milliseconds = 1000.0 / freq.QuadPart;
// timed execution
LARGE_INTEGER start, stop;
QueryPerformanceCounter(&start);
call_your_function();
QueryPerformanceCounter(&stop);
double time_in_ms = (stop.QuadPart - start.QuadPart) * milliseconds;