【问题标题】:System.nanoTime() equivalent in C [duplicate]C 中的 System.nanoTime() 等效项 [重复]
【发布时间】:2010-02-19 11:43:03
【问题描述】:

可能重复:
C++ Timer function to provide time in nano seconds

我需要在接近 3 秒时退出循环,所以我需要计算经过的时间。

我正在将一些代码从 Java 移动到 C,并且我在 Java 中使用了简单的 System.nanoTime(),

我将如何在 C 中做到这一点?

我注意到 time(NULL) 将返回秒,但我正在寻找更精确的。

提前谢谢你

【问题讨论】:

标签: java c time


【解决方案1】:

对于您想要的分辨率,C 标准库中的clock() 就足够了:

#include <time.h>
#define RUNTIME_MAX_SEC 3

clock_t start = clock();
while(clock() - start < CLOCKS_PER_SEC * RUNTIME_MAX_SEC)
{ ... }

【讨论】:

    【解决方案2】:

    使用 gettimeofday ,它有微秒级的分辨率。 Java 中的 System.nanoTime() 通常使用 *nixes 上的 gettimeofday 来实现

    【讨论】:

    • 注意; gettimeofday 可能会报告以微秒为单位的值,但实际分辨率取决于平台。它不会以这种速度更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多