如何在不使用时间模块的情况下检查每秒的迭代次数?

时间:2017-11-23 04:03:54

标签: python python-3.x loops iteration

我想检查每秒完成的迭代次数或每秒发送的urllib请求数,但不会减慢程序的速度(time.sleep()似乎可以)。这是该计划,例如:

while True:
    url = urllib.request.urlopen("google.com")

我还希望请求/每秒计数器以毫秒为单位更新,因此它可能会打印类似

的内容

"每秒2.83次请求" 然后更新为"每秒2.93个请求"如果循环迭代得更快。

1 个答案:

答案 0 :(得分:0)

我使用time和一个计数器来完成此任务。我还添加了一个自定义生成器(因为我无法在Python的库中找到它),它允许您设置和访问i值。

import time, itertools

def byRefCount():
    i = [0]
    while True:
        yield i[0],i
        i[0] += 1

last = time.time()
for i,ref in byRefCount():
    url = urllib.request.urlopen("google.com")

    if time() - last > 1:
        print(i / (time.time()-last))
        ref[0] = 0
        last = time.time()