我有兴趣计算用于实现基于TDM(时分复用方案)的方案的125μs的持续时间。但是,使用Linux操作系统,我无法以+ -5us的精度获得此持续时间。我正在使用在ubuntu和intel硬件上运行的DPDK。如果我使用函数clock_gettime(CLOCK_REALTIME)
从计算机中抽出时间,它会增加调用内核来获取时间的时间。这给我一个不准确的持续时间。
因此,我专门用一个cpu核心来计算时间,而不需要从内核那里得到时间。为此,我运行for循环以获得最大指令(8000000),并找到需要执行125μs持续时间的数字指令(即(125*8000000)/timespent
)。
然而,问题在于它也提供了不准确的结果(总是有不同的结果,即差异1000条指令)。
答案 0 :(得分:1)
由于您使用的是多任务操作系统,因此结果不准确。你不能在现代计算机上这样做。您只能在嵌入式微控制器上执行此操作,您可以控制100%的CPU时间。即使您有专用的CPU,操作系统也需要管理您的进程。鼠标和键盘也需要时间。你必须在'Bare Metal'上运行这个过程。