【问题标题】:Different run speeds in pythonpython中不同的运行速度
【发布时间】:2016-12-31 15:29:19
【问题描述】:

我想从 python 中的串口获取样本。但是当我运行代码来了解它的速率时,python 给了我不同的值!它通常约为每秒24000 时间。但有时它会返回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

【问题讨论】:

    标签: python sampling cpu-speed


    【解决方案1】:

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

    • 你的 CPU 负载
    • 缓存命中/未命中
    • RAM 访问时间

    但在您的情况下,打印占用了大部分执行时间。因此,对 stdout 的打印访问时间是导致您的变化的原因。

    试试这个:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2012-12-25
          • 1970-01-01
          • 2021-05-02
          • 1970-01-01
          • 2021-08-29
          • 2014-08-28
          • 2012-11-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多