理解clock_gettime()的不同时钟

问题描述 投票:29回答:1

嗨,我想使用clock_gettime()函数来测量我的代码的性能。

我无法理解手册页描述中函数中使用的各种时钟之间的区别。 ESP

CLOCK_REALTIME,

CLOCK_PROCESS_CPUTIME_ID

CLOCK_THREAD_CPUTIME_ID

有人可以解释每个钟表的作用吗?

c++ c clock
1个回答
36
投票

CLOCK_REALTIME报告实际的挂钟时间。

CLOCK_MONOTONIC用于测量相对实时。它以与实际时间流相同的速率前进,但不会受到系统时钟的手动或自动(NTP)调整的不连续性影响。

CLOCK_PROCESS_CPUTIME_ID用于测量进程消耗的CPU时间量。

CLOCK_THREAD_CPUTIME_ID用于测量线程消耗的CPU时间量。它得到了自2.6.12以来的现代内核和glibc的支持,但是在较旧的Linux内核上,glibc通过简单地返回自创建线程之后的进程消耗的CPU时间量来严重模拟它。

http://man7.org/linux/man-pages/man2/clock_gettime.2.html

© www.soinside.com 2019 - 2024. All rights reserved.