Pythonスクリプトに次のコードがあります。
def fun():
#Code here
fun()
このスクリプトを実行し、実行にかかった時間を分単位で調べたいと考えています。このスクリプトの実行にかかった時間を調べるにはどうすればよいですか? 例をいただければ幸いです。
Pythonスクリプトに次のコードがあります。
def fun():
#Code here
fun()
このスクリプトを実行し、実行にかかった時間を分単位で調べたいと考えています。このスクリプトの実行にかかった時間を調べるにはどうすればよいですか? 例をいただければ幸いです。
from datetime import datetime
startTime = datetime.now()
#do something
#Python 2:
print datetime.now() - startTime
#Python 3:
print(datetime.now() - startTime)
Linux または UNIX のコマンド ラインからスクリプトを実行しますか? その場合、あなたはただ使うことができます
time ./script.py
import time
start = time.time()
fun()
# python 2
print 'It took', time.time()-start, 'seconds.'
# python 3
print('It took', time.time()-start, 'seconds.')
私が通常行うことは、clock()
またはライブラリtime()
から使用することです。通訳者の時間を測定し、システム時間を測定します。その他の注意事項はdocsにあります。time
clock
time
例えば、
def fn():
st = time()
dostuff()
print 'fn took %.2f seconds' % (time() - st)
または、 を使用することもできますtimeit
。time
私はそれをどれだけ速く打ち出せるかという理由でこのアプローチをよく使用しますが、分離可能なコード部分のタイミングを計っている場合timeit
は便利です。
timeit docsから、
def test():
"Stupid test function"
L = []
for i in range(100):
L.append(i)
if __name__=='__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
その後、分に変換するには、単純に 60 で割ることができます。スクリプトのランタイムを読みやすい形式 (秒であろうと日であろうと) にしたい場合は、次のように atimedelta
に変換できますstr
。
runtime = time() - st
print 'runtime:', timedelta(seconds=runtime)
そして、それはフォームの何かを出力します[D day[s], ][H]H:MM:SS[.UUUUUU]
. timedelta docsを確認できます。
最後に、コードのプロファイリングが実際に必要な場合、Python はプロファイル ライブラリも利用できるようにします。
import time
startTime = time.time()
# Your code here !
print ('The script took {0} second !'.format(time.time() - startTime))
前のコードは問題なく動作します。
timeit モジュールを使用します。それは非常に簡単です。example.py ファイルを実行して Python シェルでアクティブにすると、シェルで関数を呼び出せるようになります。試してみて、動作することを確認してください
>>>fun(input)
output
うまくいきました。今度は timeit をインポートしてタイマーを設定します
>>>import timeit
>>>t = timeit.Timer('example.fun(input)','import example')
>>>
これでタイマーが設定され、所要時間を確認できます
>>>t.timeit(number=1)
some number here
そして、その関数の実行にかかった秒数 (またはそれ以下) が表示されます。単純な関数の場合は、t.timeit(number=1000) (または任意の数!) に増やしてから、答えをその数で割って平均を求めることができます。
これが役立つことを願っています。