gpt4 book ai didi

c - 在多线程程序中,时钟函数是如何在幕后工作的?

转载 作者:行者123 更新时间:2023-12-05 04:38:09 26 4
gpt4 key购买 nike

clock 函数在多线程程序中如何在幕后工作?

据我所知,C 标准库提供的时钟函数可以用来测量运行程序消耗的 CPU 时间,但这个过程在幕后是如何工作的?底层硬件定时器是CPU芯片的一部分吗?如果不是,时钟如何知道 CPU 何时被安排运行当前程序?由于clock函数只记录了每个单独的CPU执行当前程序的时间消耗。这意味着在多线程程序中,返回值将低于挂钟时间。

*虽然我在What's the relationship between the real CPU frequency and the clock_t in C?提出了另一个问题,但实际上,这是两个不同的主题,因此,我不想在一篇文章中将它们混为一谈。

最佳答案

Since the clock function only records the time consumption of each individual CPU that executes the current program. Meaning in amulti-threaded program, the returned value would be lower than thewall-clock time.

我在 C 标准中找不到明确的陈述,但是,according to cppreference (这通常是非常可靠的),你的假设是错误的,clock() 函数返回程序使用的(对于所有 CPU)处理器时间(粗体强调我的):

… For example, if the CPU is shared by other processes, clocktime may advance slower than wall clock. On the other hand, if thecurrent process is multithreaded and more than one execution core isavailable, clock time may advance faster than wall clock.

关于c - 在多线程程序中,时钟函数是如何在幕后工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70639995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com