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)
datetime.now()
はfrom datetime import datetime
、import datetime
(Python 3.6.4で確認されただけでなく)実行した場合に機能します。
LinuxまたはUNIXのコマンドラインからスクリプトを実行しますか?その場合、あなたは単に使うことができます
time ./script.py
time -p ./script.py
-p
パイプラインのフラグ
import time
start = time.time()
fun()
# python 2
print 'It took', time.time()-start, 'seconds.'
# python 3
print('It took', time.time()-start, 'seconds.')
print('It took {0:0.1f} seconds'.format(time.time() - start))
Python 3.xで読む必要があります。
私が通常行うことは、使用clock()
またはライブラリtime()
から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で除算します。秒または日に関わらず、読みやすい形式のスクリプトランタイムが必要な場合は、a timedelta
とstr
それに変換できます。
runtime = time() - st
print 'runtime:', timedelta(seconds=runtime)
そして、それはフォームの何かを出力します[D day[s], ][H]H:MM:SS[.UUUUUU]
。あなたはtimedelta docsをチェックアウトすることができます。
そして最後に、実際の目的がコードのプロファイリングである場合、Pythonはプロファイルライブラリも利用できるようにします。
import sys
import timeit
start = timeit.default_timer()
#do some nice things...
stop = timeit.default_timer()
total_time = stop - start
# output running time in a nice format.
mins, secs = divmod(total_time, 60)
hours, mins = divmod(mins, 60)
sys.stdout.write("Total running time: %d:%d:%d.\n" % (hours, mins, secs))
timeitモジュールを使用します。それは超簡単。Pythonシェルでアクティブになるようにexample.pyファイルを実行すると、シェルで関数を呼び出すことができるはずです。試してみて、動作することを確認してください
>>>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)(または任意の数!)に増やし、回答を数値で割って平均を求めることができます。
これがお役に立てば幸いです。
timeおよびdatetimeパッケージを使用します。
誰かがこのスクリプトを実行し、実行にかかった時間を分単位で知りたい場合
import time
from time import strftime
from datetime import datetime
from time import gmtime
def start_time_():
#import time
start_time = time.time()
return(start_time)
def end_time_():
#import time
end_time = time.time()
return(end_time)
def Execution_time(start_time_,end_time_):
#import time
#from time import strftime
#from datetime import datetime
#from time import gmtime
return(strftime("%H:%M:%S",gmtime(int('{:.0f}'.format(float(str((end_time-start_time))))))))
start_time = start_time_()
# your code here #
[i for i in range(0,100000000)]
# your code here #
end_time = end_time_()
print("Execution_time is :", Execution_time(start_time,end_time))
上記のコードは私にとってはうまくいきます。これがお役に立てば幸いです。