我想通过获取开始时间和结束时间来计算特定函数所经过的时间,然后计算它们之间的差异。
我对两个时钟CLOCK_REALTIME
和CLOCK_MONOTONIC
感到困惑。哪一个能给我正确的时间值(秒,纳秒或毫秒)?
答案 0 :(得分:2)
所以CLOCK_MONOTONIC
是从过去一些未定义的时间点开始经过的时间(对于linux我认为这是启动时间)。
CLOCK_REALTIME
本质上是计算机对当前现实世界时间的解释。因此,此时间根据您的计算机内部时钟而变化;如果您手动更改机器的时间,CLOCK_REALTIME
将会更改。
因此,CLOCK_MONOTONIC
最适合查找经过时间的任务。但是,由于它计算了从某个任意时间点开始经过的时间,您可能需要在函数的开头和结尾保存CLOCK_MONOTONIC
值并减去它们以确定经过的时间。