実行速度を測りたい
pythonとmatlabの実行速度計測の話です
tictocとは?
tiktokではない。
matlabにある区間を指定して実行速度を測る便利なやつ。
こんな感じで実行速度が見れる。
matlab
tic
% 計測区間
toc
>> 経過時間は 0.000157 秒です。
matlabのtictoc便利......
でもpythonではtictocできない。
コード中のボトルネックどこー?ってなった時にめんどくさい。
ある区間の実行速度を計測しようとするとこんな感じになる。
python
import time
start = time.time()
# 計測区間
print(time.time() - start)
jupyter使ってると楽なんですけどね。セルの先頭にちょろっと書いて終わり。
jupyter
%%time
# 計測区間
でもjupyterで動かさないことも多いし、パッとこの区間の実行速度知りたい!って時にめんどくさい
本題
これでいいや
tictoc
import time
def tic():
#require to import time
global start_time_tictoc
start_time_tictoc = time.time()
def toc(tag="elapsed time"):
if "start_time_tictoc" in globals():
print("{}: {:.9f} [sec]".format(tag, time.time() - start_time_tictoc))
else:
print("tic has not been called")
使い方
大体同じ。表示内容にタグつけれる分優位。"()"をつけなきゃいけないのでちょっとつらい。
tictoc
tic()
# 計測区間
toc("task1") # 何も入れずに toc() でもいい
>> task1: 0.000114918 [sec]
これをDashとかでスニペットに登録しといて「うわー実行速度知りてー」って時に召喚すれば良いと思います。