繁体   English   中英

c ++中的计时功能:最准确的方法

[英]Timing Functions in c++: The most accurate approach

我想为代码中的每个函数计时。 所以我有

func1(); 
func2();
func3();

目前我正在使用

#include <omp.h>
#include <time.h>

double start1=omp_get_wtime();
func1(); 
double end1=omp_get_wtime();
cout<<"\nfunc1 run time :"<<end1-start1<<endl;


double start2=omp_get_wtime();
func2(); 
double end2=omp_get_wtime();
cout<<"\nfunc2 run time :"<<end2-start2<<endl;
...

问:是否有比我用来衡量每个函数运行时间更好,更准确的方法?

C ++最近(即标准C ++ 11)引入了std::chrono来获取计时信息。 这是一种跨平台的机制。 这里 如果您拥有现代的编译器,则可以按以下方式使用它:

std::chrono::time_point<std::chrono::system_clock> t;
t = std::chrono::system_clock::now();

在C ++ 11之前的版本中,C ++不包含任何计时功能,因此您要依赖其中任何一个

  • 操作系统提供的机制; 在Linux上,您可以使用clock_gettime()
  • 硬件平台提供的机制(例如x86 TSC

哪种机制最准确取决于您的特定操作系统和硬件平台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM