获取分析功能持续时间的时间(以毫秒为单位)

时间:2013-08-03 08:15:42

标签: c++ profiling

我有一个写一个文件的函数。我需要用两个参数来分析函数,所以我可以看到差异。 (不要告诉我有关Visual Studios Profiling工具的信息,我想自己做)。我想申请这样的事情:

double start = getTime();
myFunction("param1");
double request = getTime() - start;
printf_s("Request time: %f", request);

我该怎么做? (以上只是伪代码,我不知道真正的函数名称)

5 个答案:

答案 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)

您可以使用:

  1. std::clock变量并将其除以CLOCKS_PER_SEC以获取秒数(需要#include <ctime>
  2. 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)

答案 4 :(得分:0)

C ++ 11提供std::chrono命名空间,它具有一组标准的时间 - 日期函数和类型。请注意,该参考页面的示例完全符合您的要求。

我建议你this Bo Quian's youtube tutorial关于std::chrono