C程序的执行时间

C程序的执行时间

我有一个C程序,旨在在几个处理器上并行运行。我需要能够记录执行时间(可能是1秒到几分钟)。我已经搜索了答案,但他们似乎都建议使用该clock()函数,然后计算程序所用的时钟数除以该Clocks_per_second值。

我不确定如何Clocks_per_second计算价值?

在Java中,我只是在执行之前和之后以毫秒为单位。

C中有类似的东西吗?我看过了,但我似乎无法找到比第二种解决方案更好的方法。

我也知道分析器是一个选项,但我希望自己实现一个计时器。

谢谢


子衿沉夜
浏览 479回答 3
3回答

喵喔喔

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时间。在多任务系统(即所有这些系统)上,这些系统可能大不相同。
打开App,查看更多内容
随时随地看视频慕课网APP