【发布时间】:2020-03-02 09:04:42
【问题描述】:
我知道c++中有<chrono>,std::chrono::high_resolution_clock::now()可以得到std::chrono::high_resolution_clock::time_point类型的确切时间。但是,我使用的是原始 C 语言,因此无法调用此函数。 time()函数只能获取秒级时间。
我的最终目标是测量多线程程序的运行时间。 clock() 函数会将所有线程的时钟相加,因此不能用于测量运行时间。
【问题讨论】:
-
时钟是准确的基准时钟,还是时钟是一天中的准确时间?无论哪种情况,它都是系统特定的。
-
POSIX 文档
clock_*()functions 可以满足您的需求。 -
@pmg 谢谢!看来我可以使用
timespec_get()来获取准确的时间。 -
我知道 C++ 中有
<chrono>并且std::chrono::high_resolution_clock::now()可以得到std::chrono::high_resolution_clock::time_point类型的确切时间。 在任何特定平台上,C++ 中没有任何东西具有访问任何比 C 可以访问的时钟更准确的时钟。 C++ 不会比 C 更准确。它们都可以访问相同的底层时钟实现。 C++ 只是在可移植抽象下隐藏了确切的实现。