pythonのプロファイラ:python-profiler

2010年2月14日

C言語使ってゴリゴリの計算をするとき、時には高速化が必要になってきます。 

そんなとき使うのがgprofですよね。これ常識。

僕もこのツールのおかげで 半目でバシッと高速なプログラムを作成することができます。

プログラムを改善する際、 このボトルネックをつぶすのがホント効率的なんですよね。最近僕はほぼWeb屋なので、 C言語だけでなく、スクリプト言語も使います。

その中でpythonはケッコーなお気に入りなのですが、 このpythonにもプロファイリングツールがあります。 それが python-profiler です。

関数レベルで、個々の関数が何回コールされていて、どれくらいのCPU時間を消費しているのかがが 一目で分かるのでボトルネック発見が容易になります。


どうやらほとんどのLinuxプラットフォームにはpython2.4標準ライブラリとしてビルトインされている ようなのですが、僕の環境Debianにはインストールされていません。


なので、以下のように インストールしました。

1
$ sudo apt-get install python-profiler

ソース中に埋め込む場合は、以下のようにしましょう:

1
2
3
4
5
6
import profile 

def hoge():
...

profile.run('hoge()')
のように解析してもいいですし、

プログラム全体を解析対象とするならソースに埋め込むことなく

以下のようにすることでプロファイリングすることができます。

1
$ python -m profile hoge.py

高速化が必要な際は開発効率がグンと上がりますので、是非一度お試しあれ。