python 中的不同 运行 速度

Different run speeds in python

我想从 python 中的串口获取样本。但是当我 运行 代码知道它的速率时, python 给了我不同的值!通常约为每秒 24000 次。但有时它 returns 14000。造成这种巨大差异的原因是什么?如果我想抽样 100 万我应该怎么做?

这是测试运行速度的示例代码:

import time

def g(start=0, stop=5, step=1):
while start < stop:
    yield start
    start += step


t1 = time.time()
t2 = t1 + 1

for item in g(10,1000000,1):
    print(item)
    t1 = time.time()
    if t1 > t2:
        break

调查 timeit 模块,它是为这样的应用程序设计的。基准必须 运行 在非常受控的条件下才能像可重复的那样。 timeit 运行 对您的代码进行多次测试,并为您提供最佳结果。通常较慢的性能表明您的计算机在执行基准测试的同时 运行 正在执行其他一些任务。

python 中的 运行 代码总是会有一些时间差异,这是因为 CPU gives 到 运行 脚本的资源。您必须尝试几次并计算平均时间。

我第一次执行时是@15000,然后是28000左右。 一般来说,结果主要取决于

  • 你的CPU负载
  • 缓存hit/miss
  • RAM 访问时间

但在您的情况下,打印占用了大部分执行时间。所以打印到 stdout 的访问时间是你的变化的原因。

试试这个:

for item in g(10,100000000,1):
#print(item)
t1 = time.time()
if t1 > t2:
    print(item) #print only the last
    break