gpt4 book ai didi

c - 使用 clock_gettime() 得到不一致的结果

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:13 25 4
gpt4 key购买 nike

我目前正在处理共享内存我想计算所花费的时间 线程 1 写入,线程 2 从共享内存读取。为此,我使用了:

 clock_gettime(CLOCK_REALTIME,&start)

在线程 1 中,并在从线程 2 读取之后。我再次调用:

 clock_gettime(CLOCK_REALTIME,&end) 

读取和写入所花费的时间可以通过以下方式计算:

 dt = (double) (end.tv_sec - start.tv_sec) +
((double) (end.tv_nsec - start.tv_nsec) / 1000000000.0);

但每次我运行该程序时,我都会得到不同的结果。 我做错了什么?

最佳答案

我以前用过这种测量方法,你没有做错任何事。即使您的日程安排正确,您的输出也会始终波动。

如果线程没有被另一个进程中断,我过去的开销大约是 250 微秒,但我想这也非常依赖于 CPU 能力。

对于开销:尝试用空体测量数百/数千次,检查最低(最少中断)输出以检查开销。

对于您的结果:尝试相同的方法并再次取最低值,这样您就可以接近您正在寻找的实际值。请记住,单次读写可能无法快速测量。

关于c - 使用 clock_gettime() 得到不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457323/

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