Pythonでline_profilerを用いてプログラムが消費した時間に関する詳細なレポートを出力する

スポンサーリンク

Pythonでline_profilerを用いてプログラムが消費した時間に関する詳細なレポートを出力してみます。

今回はLineProfilerモジュールを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、記事作成時点では「3.7.13」となっています。

■line_profilerを用いてプログラムが消費した時間に関する詳細なレポートを出力する

では、早速line_profilerを用いてプログラムが消費した時間に関する詳細なレポートを出力するスクリプトを書いていきます。

■コード

from line_profiler import LineProfiler

def test_d(arg):
  print(arg)

arg = "helloworld"

profile = LineProfiler(test_d(arg))
profile.print_stats()

「from import」でline_profilerのLineProfilerを呼び出します。その後、def文を用いてtest_dという関数を定義します。定義した関数の引数,パラメータとしてargを設定します。設定後、関数を呼び出した時に実行される処理を記述します。今回はprint()で引数,パラメータとして受け取った値を出力させるという処理になります。

関数を定義後、定義した関数で設定した引数,パラメータに渡す値を、arg変数を定義し、その中に格納します。

格納後、profileという変数を定義し、その中でLineProfiler()を用います。括弧内には消費した時間を測定する関数を引数,パラメータとして渡します。これでプログラムが消費した時間が測定され、測定の結果が格納されます。

格納後、profile変数に対してドット(.)演算子を用いてprint_stats()を呼び出します。これでプログラムが消費した時間が出力されます。

■実行・検証

このセルを保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、「Timer unit(タイマーユニット): 1e-06 s」と出力され、プログラムが消費した時間が出力されました。

なお、今回は「/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:8: UserWarning: Could not extract a code object for the object None」という警告が出力されましたが、警告でありエラーではないので、一旦無視しています。

コメント

タイトルとURLをコピーしました