スキップしてメイン コンテンツに移動

投稿

3月, 2013の投稿を表示しています

Python: timeitモジュールを使ってお手軽に実行時間計測

Pythonでは timeitモジュール を使って簡単に実行時間を計測できる。以下に示すコードはPythonでは一般的なコードだと思う。 たらい回し関数(竹内関数) と階乗を求める関数だ。これを実行した時の時間計測、さらにコードに含まれている関数の実行時間を簡単に測るにはどうすればよいか。 ここでtimeitモジュールが利用できる。まず、Pythonシェル環境では以下の通り。 main関数の測定は次のように行う。stmtで時間計測したい関数を指定して、setupで最初の1回だけ実行する文を指定する。numberは実行する回数となっている。正確を期するなら複数回を指定するべきだろう。 >>> import timeit >>> timeit.timeit(stmt='test_timeit.main()', setup='import test_timeit', number=1) 12 3628800 2.663659573618423 たらい回し関数(tarai)のみの測定。 >>> timeit.timeit(stmt='test_timeit.tarai(12, 6, 0)', setup='import test_timeit', number=1) 2.6390463109480637 階乗関数(factorial)のみの測定。100万回実行。 >>> timeit.timeit(stmt='test_timeit.factorial(10)', setup='import test_timeit', number=1000000) 2.3606330638673825 さらに、コマンドラインでの計測も可能だ。 main関数の測定。コマンドオプションの-sは最初に1回だけ実行する文、-nは実行する文の回数、-rはタイマのリピート数になっている。 $ python -m timeit -n 1 -r 1 -s "import test_timeit" "test_timeit.main()" 12 362880