我有一个写一个文件的函数。我需要用两个参数来分析函数,所以我可以看到差异。 (不要告诉我有关Visual Studios Profiling工具的信息,我想自己做)。我想申请这样的事情:
double start = getTime();
myFunction("param1");
double request = getTime() - start;
printf_s("Request time: %f", request);
我该怎么做? (以上只是伪代码,我不知道真正的函数名称)
答案 0 :(得分:14)
使用std::chrono
,这是一个适用于您的代码的示例:
#include <chrono>
int main()
{
using milli = std::chrono::milliseconds;
auto start = std::chrono::high_resolution_clock::now();
myFunction("param1");
auto finish = std::chrono::high_resolution_clock::now();
std::cout << "myFunction() took "
<< std::chrono::duration_cast<milli>(finish - start).count()
<< " milliseconds\n";
}
答案 1 :(得分:3)
您可以使用:
CLOCKS_PER_SEC
以获取秒数(需要#include <ctime>
)WinAPI
您可以使用GetTickCount()并将其除以1000以获得秒数。答案 2 :(得分:1)
虽然很晚但我会回答这个问题: 可以使用c ++的getTickCount()函数。 基本语法有点像:
double start=(double)getTickCount();
//Your code
.
.
.
start= ((double)getTickCount() - start)/getTickFrequency();
cout<<"time spent in executing the code ="<<start;
答案 3 :(得分:0)
您可以使用Windows API函数:
QueryPerformanceCounter
QueryPerformanceFrequency
见
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms644905(v=vs.85).aspx
答案 4 :(得分:0)
C ++ 11提供std::chrono
命名空间,它具有一组标准的时间 - 日期函数和类型。请注意,该参考页面的示例完全符合您的要求。
我建议你this Bo Quian's youtube tutorial关于std::chrono
。