我正在尝试使用在用户空间中执行的时间来计算我的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] 举报,一经查实,本站将立刻删除。