gpt4 book ai didi

c - 运行 for 循环指令的时间

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

我有兴趣计算 125 μs 的持续时间以实现基于 TDM(时分复用方案)的方案。但是,我无法使用 Linux 操作系统以 +-5us 的精度获得此持续时间。我正在使用在 ubuntu 和英特尔硬件上运行的 DPDK。如果我使用函数 clock_gettime(CLOCK_REALTIME) 从计算机获取时间,它会添加调用内核获取时间的时间。这给我的持续时间不准确。

因此,我专门用了一个cpu核来计算时间,而没有向内核询问时间。为此,我运行一个 for 循环以获得最大指令数 (8000000),并找到需要在 125 μs 持续时间内执行的指令数(即 (125*8000000)/timespent)。

但是,问题是它也给出了不准确的结果(总是有不同的结果,即 1000 条指令的差异)。

  • 有谁知道为什么我会得到不准确的结果,即使我为此专门使用了 CPU?
  • 您是否知道一种无需调用内核即可计算持续时间(非常短,可能等于 125 微秒)的方法?谢谢!

最佳答案

您得到的结果不准确,因为您使用的是多任务操作系统。您不能在现代计算机上执行此操作。您只能在您控制 100% CPU 时间的嵌入式微 Controller 上执行此操作。操作系统需要管理你的进程,即使你有专用的 cpu。鼠标和键盘也需要时间。您必须在“裸机”上运行该过程。

关于c - 运行 for 循环指令的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919628/

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