总结UNIX/LINUX下C++程序计时的方法
发布时间:2020-12-16 05:20:34 所属栏目:百科 来源:网络整理
导读:前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较。但要精确测量程序的运行时间并不容易,因为进程切换、中断、共享的多用户、网络流量、高速缓存访问及转移预测等因素都会对程序计时产生影响。 下面看看小编为大家整理几
前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较。但要精确测量程序的运行时间并不容易,因为进程切换、中断、共享的多用户、网络流量、高速缓存访问及转移预测等因素都会对程序计时产生影响。 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法。比如说, #include <sys/time.h> void f() { //... } int main() { struct timeval t1,t2; gettimeofday(&t1,NULL); f(); gettimeofday(&t2,NULL); //那么函数f运行所花的时间为 //deltaT = (t2.tv_sec-t1.tv_sec) * 1000000 + t2.tv_usec-t1.tv_usec 微秒 return 0; }
如果想精确到纳秒呢?继续往下看: 方法三: #include <time.h> void f() { //... } int main() { timespec t1,t2; clock_gettime(CLOCK_MONOTONIC,&t1); f(); clock_gettime(CLOCK_MONOTONIC,&t2); //那么f所花时间为 //deltaT = (t2.tv_sec - t1.tv_sec) * 10^9 + t2.tv_nsec - t1.tv_nsec 纳秒 return 0; } 这里说的都是 总结 以上就是在UNIX/LINUX下C++程序计时的方法的全部内容,希望本文的内容对大家学习使用C++程序能有所帮助。如有疑问欢迎大家留言讨论。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |