LoginSignup
6
3

More than 5 years have passed since last update.

pythonでもtictocしたい

Posted at

実行速度を測りたい

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とかでスニペットに登録しといて「うわー実行速度知りてー」って時に召喚すれば良いと思います。

6
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3