python是否以恒定速度迭代?

Seo*_*Woo 3 python iteration gpio

我编写了一些代码来获取GPIO的传感器读数.为了确保测量结果与特定时间相对应,我想知道python是否以恒定速度迭代(以便迭代之间的间隙是恒定的) - 以及迭代之间的最小时间间隔是多少.

如果他们不是,有人可以告诉我如何使时间间隔保持不变.谢谢!

Mar*_*ers 10

不,Python不能也不能以恒定速度迭代.

Python只是Raspberry PI上的另一个进程,您的操作系统负责分配它在CPU上运行的时间(称为多任务).其他过程也会分配时间.这意味着Python永远不会一直运行,任何处理时间都将取决于其他进程正在做什么.

迭代本身也被委托给特定类型; 如何生成下一个项目然后变化很大,即使Python被持续访问CPU迭代仍然会有所不同.无论你在循环体中做什么也需要时间,除非输入和输出总是完全相同,否则几乎肯定需要花费不同的时间来完成工作.

而不是试图计算你的循环时间,用循环测量时间time.time()或timeit.default_timer(根据你需要的精确度,在你的Raspberry上它将是相同的功能)并根据它调整你的行动.

  • @exhuma:这适用于在通用操作系统上运行的所有语言.您需要[实时操作系统](http://en.wikipedia.org/wiki/Real-time_operating_system)来保证执行时间. (2认同)
  • @khajvah:操作系统将不断切换; 否则它没有时间安排自己做出调度决定. (2认同)