c/c++开发分享C – 测量计算时间

有没有简单的方法来测量C中的计算时间? 我在执行时尝试了时间实用程序,但我需要测量程序的特定部分。

谢谢

    您可以在使用clock函数和宏CLOCKS_PER_SEC

     clock_t start = clock() ; do_some_work() ; clock_t end = clock() ; double elapsed_time = (end-start)/(double)CLOCKS_PER_SEC ; 

    现在elapsed_time保持调用do_some_work花费的时间,以小数秒为单位。

    您可以尝试使用探查器“gprof”。 更多信息请访问: http : //www.cs.utah.edu/dept/old/texinfo/as/gprof.html

    您通常可以使用clock()函数来获取对正在测试的函数的单个调用的开始和结束时间。 但是,如果do_some_work()特别快,则需要将其置于循环中并将循环本身的成本考虑在内,例如:

     #define COUNT 10000 // Get cost of naked loop. clock_t start_base = clock(); for (int i = count; i > 0; i--) ; clock_t end_base = clock(); // Get cost of loop plus work. clock_t start = clock(); for (int i = count; i > 0; i--) do_some_work() ; clock_t end = clock(); // Calculate cost of single call. double elapsed_time = end - start - (end_base - start_base); elapsed_time = elapsed_time / CLOCKS_PER_SEC / COUNT; 

    这至少有两个好处:

    @codebolt – 谢谢! 非常好。 在Mac OS X上,我添加了time.h的include,并粘贴在你的四行中。 然后我打印了start,stop(整数)和经过时间的值。 1mS分辨率。

     output: 3 X: strcpy .name, .numDocks: start 0x5dc end 0x5e1 elapsed: 0.000005 calloc: start 0x622 end 0x630 elapsed: 0.000014 

    在我的foo.c程序中我有

     #include  #include  #include  #include  

    但它没有明确地包括time.h. 其中一个人必须把它带入。

    实际代码:

     clock_t start = clock() ; strcpy( yard2.name, temp ); /* temp is only persistant in main... */ strcpy( yard1.name, "Yard 1"); strcpy( yard3.name, "3 y 3 a 3 r 3 d 3"); yard1.numDocks = MAX_DOCKS; /* or so I guess.. */ yard2.numDocks = MAX_DOCKS; /* or so I guess.. */ yard3.numDocks = MAX_DOCKS; /* or so I guess.. */ clock_t end = clock() ; double elapsed_time = (end-start)/(double)CLOCKS_PER_SEC ; printf("3 X: strcpy .name, .numDocks: start 0x%x end 0x%x elapsed: %-12:8f n", start, end, elapsed_time ); start = clock() ; arrayD = calloc( yard2.numDocks, sizeof( struct dock ) ); /* get some memory, init it to 0 */ end = clock() ; elapsed_time = (end-start)/(double)CLOCKS_PER_SEC ; printf("calloc: start 0x%x end 0x%x elapsed: %-12:8f n", start, end, elapsed_time ); 

      以上就是c/c++开发分享C – 测量计算时间相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/545948.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注