2017-11-23 4 views
0

1秒間に何回の反復が完了したか、または1秒あたりに送信されるurllibリクエストの数を確認したいと思いますが、プログラムの速度を落とすことはありません(time.sleep()のようです)。これは、例えば、プログラムです:時間モジュールを使用せずに1秒あたりの反復回数を確認するにはどうすればよいですか?

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

私もそれが 、その後

「毎秒2.83の要求」のようなものを印刷することができるように、第2のカウンタあたりの要求は/ミリ秒単位で更新するためにたいと思いますループが高速に反復する場合は、「2.93要求/秒」に更新します。

+0

私はpipから 'tqdm'を使います。いくつかの反復ごとに更新されるだけなので、他のいくつかのソリューションよりもはるかにパフォーマンスが優れています。 – Shadow

+0

どのようにtime.sleep()を使用していますか?私はあなたが別のスレッドでそれを使用していると仮定しますか? –

答えて

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() 
関連する問題