为了账号安全,请及时绑定邮箱和手机立即绑定

用C+度量函数的执行时间

用C+度量函数的执行时间

C++
繁星coding 2019-07-15 14:56:47
用C+度量函数的执行时间我想知道某个函数在我的C+程序中执行所需的时间。linux..之后,我想做一个速度比较。我看到了几个时间函数,但最后得到的是Boost。编年史:process_user_cpu_clock, captures user-CPU time spent by the current process现在,我不清楚我是否使用了上述功能,我会得到CPU在这个功能上花费的唯一时间吗?其次,我找不到任何使用上述功能的例子。有谁能帮我使用上面的功能吗?P.S:现在,我在用std::chrono::system_clock::now()获得时间的秒,但这给我不同的结果,因为不同的CPU负载,每次。
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

在C+11中,这是一种非常容易使用的方法。std::chrono::high_resolution_clock从…<chrono>头球。

用它就像这样:

#include <iostream>#include <chrono>using namespace std;using namespace std::chrono;void function(){
    long long number = 0;

    for( long long i = 0; i != 2000000; ++i )
    {
       number += 5;
    }}int main(){
    high_resolution_clock::time_point t1 = high_resolution_clock::now();
    function();
    high_resolution_clock::time_point t2 = high_resolution_clock::now();

    auto duration = duration_cast<microseconds>( t2 - t1 ).count();

    cout << duration;
    return 0;}

这将衡量功能的持续时间。

注:不一定要获得相同的输出,因为计算机上运行的其他进程可以少或更多地使用计算机的CPU。就像你会解决一个数学练习,你的头脑可以或多或少地集中,所以你会在不同的时间解决这个问题。在人类的头脑中,我们可以记住一个数学问题的解决方案,尽管对于一台计算机来说,同样的过程总是新的,所以,正如我所说的,它不需要总是得到相同的结果!


查看完整回答
反对 回复 2019-07-15
?
大话西游666

TA贡献1817条经验 获得超14个赞

简单的程序来查找函数执行所需的时间。

#include <iostream>#include <ctime> // time_t#include <cstdio>void function(){
     for(long int i=0;i<1000000000;i++)
     {
        // do nothing
     }}int main(){time_t begin,end; // time_t is a datatype to store time values.time (&begin);
      // note time before executionfunction();time (&end);
       // note time after executiondouble difference = difftime (end,begin);
       printf ("time taken for function() %.2lf seconds.\n", difference );return 0;}


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 361 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信