C 计算最佳定时器间隔(定时器设置时间)

C 计算最佳定时器间隔(定时器设置时间),c,linux,timer,intervals,C,Linux,Timer,Intervals,在Linux API timer_settime中,我们都知道可以使用API timer_settime设置计时器间隔。我们可以设置的最小值是1ns,但是CPU没有必要接受这个值,因为它也很大程度上取决于CPU的频率 我想计算这个,并将这个最佳间隔设置为我的计时器(应该是最小的) 你知道怎么计算吗 提前感谢。最佳间隔是“考虑到应用程序的限制,尽可能长”。换句话说,不要频繁开火。你试过“人钟”吗 另外,不要忘记在调用方和CPU之间有一个内核和一个C库。我想你真正想知道的是“我可以在内核中让进程休眠

在Linux API timer_settime中,我们都知道可以使用API timer_settime设置计时器间隔。我们可以设置的最小值是1ns,但是CPU没有必要接受这个值,因为它也很大程度上取决于CPU的频率

我想计算这个,并将这个最佳间隔设置为我的计时器(应该是最小的)

你知道怎么计算吗

提前感谢。

最佳间隔是“考虑到应用程序的限制,尽可能长”。换句话说,不要频繁开火。

你试过“人钟”吗


另外,不要忘记在调用方和CPU之间有一个内核和一个C库。我想你真正想知道的是“我可以在内核中让进程休眠的最短时间间隔是多少?”我不确定,但这可能取决于内核使用的时钟源(它只与传递给计时器和时钟函数的时钟ID有点关系)。

看起来内核3.15将支持。这正是我们需要衡量的,以及如何衡量的。我们需要将其设置为处理器可接受的最小允许值。您可以获得的最小延迟显然是在一个紧密循环中调用您的函数,而根本不使用计时器API。问题似乎没有明确说明。您还需要什么详细信息/规格?请让我知道,我会清理的。我不知道这很直截了当,但你没有理解它。@kingsmasher1:如果你描述一下你试图实现的最终目标,也许会有所帮助。@caf:我们致力于ARM目标,我在测试工具中实现了一个计时器。我们需要将计时器间隔设置为最小允许值,以便用户可以根据需要设置计时器到期时间,并且仍然可以得到结果。事情是这样的:若计时器间隔很高,那个么测试程序的执行很可能在计时器滴答作响之前结束。2) 如果间隔很低(如1ns),则即使API采用1ns值,但ARM处理器也可能不接受1ns值。这就是为什么我想测量,什么是可以安全放置的最佳最小计时器间隔。