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

C程序的执行时间

C程序的执行时间

C
子衿沉夜 2019-08-23 15:45:44
C程序的执行时间我有一个C程序,旨在在几个处理器上并行运行。我需要能够记录执行时间(可能是1秒到几分钟)。我已经搜索了答案,但他们似乎都建议使用该clock()函数,然后计算程序所用的时钟数除以该Clocks_per_second值。我不确定如何Clocks_per_second计算价值?在Java中,我只是在执行之前和之后以毫秒为单位。C中有类似的东西吗?我看过了,但我似乎无法找到比第二种解决方案更好的方法。我也知道分析器是一个选项,但我希望自己实现一个计时器。谢谢
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

CLOCKS_PER_SEC是一个声明的常量<time.h>。要获取C应用程序中任务使用的CPU时间,请使用:


clock_t begin = clock();


/* here, do your time-consuming job */


clock_t end = clock();

double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;

请注意,这会将时间作为浮点类型返回。这可能比一秒钟更精确(例如,您测量4.52秒)。精度取决于架构; 在现代系统上你很容易获得10毫秒或更低,但在较旧的Windows机器上(从Win98时代)它接近60毫秒。


clock()是标准C; 它“无处不在”。有系统特定的功能,例如getrusage()类Unix系统。


Java System.currentTimeMillis()并没有衡量同样的事情。它是一个“挂钟”:它可以帮助您测量程序执行所花费的时间,但它并不能告诉您使用了多少CPU时间。在多任务系统(即所有这些系统)上,这些系统可能大不相同。


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 522 浏览

添加回答

举报

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