最佳答案
                                        
                                                                        
                                在计时函数 time、 clock、 getrusage、 clock_gettime、 gettimeofday和 timespec_get中,我想清楚地了解它们是如何实现的,它们的返回值是什么,以便了解在什么情况下我必须使用它们。
首先,我们需要将返回 挂钟值挂钟值挂钟值的函数与返回 进程或线程值的函数进行分类。gettimeofday返回挂钟值,clock_gettime返回挂钟值 或者进程或线程值,这取决于传递给它的 Clock参数。getrusage和 clock返回进程值。
第二个问题是关于这些功能的实现以及它们的准确性。这些功能使用哪种硬件或软件机制。
看起来 getrusage只使用内核刻度(通常1毫秒长) ,因此不能比 ms 更精确,对吗?
然后,getimeofday函数似乎使用了最精确的底层硬件。因此,在最近的硬件上,它的精确度通常是微秒(由于 API 的缘故,不可能超过微秒)。
那么 clock呢,手册中提到的“近似”是什么意思呢?
那么 clock_gettime呢,它的 API 是纳秒级的,这是否意味着如果底层硬件允许的话,它能够如此精确呢?那么单调性呢?
还有其他功能吗?