2014/04/23

Python Tips:スクリプトの実行時間を計測したい

Pythonで、スクリプトの実行時間を計測する方法をご紹介します。

実行時間を計測するには、そのままずばり「 timeit 」という実行時間計測用のライブラリを使う方法がシンプル、かつかんたんです。

timeit の最も基本的な使い方は次のとおりです。
$ python -m timeit "[x ** 3 for x in range(100)]"
# => 10000 loops, best of 3: 39 usec per loop

python コマンドに m オプションを渡し timeit モジュールを読み込んで、その後に計測したいコードを文字列で渡します。すると、渡されたコードの実行時間が標準出力に返ってきます。時間の単位は usec 、ということで単位時間(マイクロセカンド)のようです。

上の例では「与えられたコードを10000回繰り返す」ということを3回試行して、3回のうちのベストタイムが返されています。

渡された文字列が実行されるので、特定のスクリプト(ファイルになっているもの)の実行時間を計測したい場合は、この文字列の部分にコードを入れ込めばOKです。

たとえば、LinuxやMacなら次のようにすることで特定のスクリプトの実行時間を計測することができます。
$ python -m timeit "`cat script_to_time.py`"
# => 10000 loops, best of 3: 7.76 usec per loop
cat script_to_time.py によってスクリプトの中身を出力して、それを `` を使ってコマンドの中に埋め込んでいます。 `` の部分は $() などを使っても大丈夫です。

・・・以上です。


timeit のこの他の使い方については別の投稿にも書いていますのでよろしければご参考にしてください。
ライブラリ:timeit - Life with Python


参考
26.6. timeit — Measure execution time of small code snippets — Python公式ドキュメント

0 件のコメント: