gpt4 book ai didi

c - 使用clock()来统计程序执行时间

转载 作者:太空狗 更新时间:2023-10-29 17:17:28 24 4
gpt4 key购买 nike

我正在使用类似这样的方法来计算我的程序从开始到结束需要多长时间:

int main(){
clock_t startClock = clock();
.... // many codes
clock_t endClock = clock();
printf("%ld", (endClock - startClock) / CLOCKS_PER_SEC);
}

我的问题是,因为有多个进程同时运行,假设我的进程在空闲中有 x 时间,在这段时间里我的程序中的时钟会滴答作响吗?

所以基本上我关心的是,假设有 1000 个时钟周期过去了,但我的进程只使用了其中的 500 个,我会从 (endClock - startClock) 得到 500 还是 1000?

谢谢。

最佳答案

这取决于操作系统。在 Windows 上,clock() 测量挂钟时间。在 Linux/Posix 上,它测量所有线程的组合 CPU 时间。

如果你想在 Linux 上挂钟,你应该使用 gettimeofday()

如果你想在 Windows 上使用 CPU 时间,你应该使用 GetProcessTimes()

编辑:

因此,如果您使用的是 Windows,clock() 测量空闲时间。

在 Linux 上,clock() 不会测量空闲时间。

关于c - 使用clock()来统计程序执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477486/

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