微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在运行在Linux上的C ++程序中定时一个函数

我正在尝试使用在用户空间中执行的时间来计算我的C ++程序的一个函数。 我尝试了从程序中的clock_gettime(CLOCK_PROCESS_cpuTIME_ID,&开始)命令,但恐怕这是cpu时间,而不是我实际需要的用户时间。 在这种情况下,“程序名称”的时间将不起作用,因为我只是计时function。 任何帮助将是伟大的。 谢谢!

使用times()函数,请参阅: http : //linux.die.net/man/2/times

这会为您提供当前的用户和系统时间。 您可以在进入和退出子程序时调用它,然后减去。

你也可以使用像gprof这样的分析器,它会自动为你做这件事(但会招致开销)。

你可以使用gettimeofday()来作为例子。

将此函数添加到您的代码中:

#include <sys/time.h> long myclock() { struct timeval tv; gettimeofday(&tv,NULL); return (tv.tv_sec * 1000000) + tv.tv_usec; }

并用它来检索时间:

long start = myclock(); // do something // ... long end = myclock() - start; std::cout << "[" << time->tm_hour << ":"<< time->tm_min << ":" << time->tm_sec << "] time:" << std::setprecision(3) << end/1000000.0 << std::endl;

试试boost:timer库。 它是便携式和易于使用。 升压计时器分别给你挂钟时间,用户时间和系统时间。

http://www.boost.org/doc/libs/1_53_0/libs/timer/doc/cpu_timers.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐