0

コードを実行してタイマーを開始してから終了するまでの時間を知りたいです。たとえば、これは私が探しているものです:

import timerlib
import urllib2

timer = timerlib.timer()

print 'Starting download now!'
timer.start()

urllib2.urlopen('http://some.site.com/100mb')

timer.stop()
print 'Downloaded 100mb in ' + str(timer.collectedtime()) + '!'

そして、それは次のようなものを出力します:Downloaded 100mb in 5m31s!

これどうやってするの?

4

1 に答える 1

0

プロファイリングの目的ではなく、エンド ユーザーの便宜のために時刻を出力するだけの場合は、凝ったものは必要ありません。time.time算術演算と印刷が可能なタイムスタンプを返します (実際には、浮動小数点数秒だけです):

import time
t0 = time.time()
print 'Starting download now!'
urllib2.urlopen('http://some.site.com/100mb')
t = time.time()
print 'Downloaded 100mb in ' + str(t - t0) + '!'

しかし、プロファイリングを探しているなら、間違いなく使用したいでしょうtimeit:

import timeit
timeit.timeit("urllib2.urlopen('http://some.site.com/100mb')", 
              setup="import urllib2", 
              number=1)

ご覧のとおり、これはそれほどクリーンでもシンプルでもなく、柔軟性もありません。しかし、timeitライブラリは、初心者が思いもよらないあらゆる種類の詳細を処理し、経験豊富な開発者は依然として間違っています。

(もちろん、実生活では、1 回の実行だけに基づいて何かをプロファイリングすることは絶対にしたくないので、 を渡す必要はありませんnumber=1。これは、最も近い同等のものを示すためでした。)

于 2012-10-03T21:03:30.003 に答える