cProfileの表示順
https://docs.python.org/2/library/profile.html#module-cProfile
http://stackoverflow.com/questions/10326936/sort-cprofile-output-by-percall-when-profiling-a-python-script
PythonでcProfileを使うとどの関数がどれだけ時間喰ってるかを調べられる:
python -m cProfile myprog.py
デフォルトだと,表示順は'standard name'つまりファイル名と関数名を辞書順に並べて情報を表示する.
cProfileを使う時は,かかった時間順に並べたいのが普通の要求だと思うので,
そういう時は
python -m cProfile -s cumtime myprog.py
とすると良い.
ちなみに,-sオプションに与えられるのは以下の通り:
オプション名 | 英説明 | 和説明 |
'calls' | call count | 呼び出し数 |
'cumulative' | cumulative time | その関数がトータルで使った時間,内部で呼んだ関数の時間も含む |
'cumtime' | cumulative time | 同上 |
'file' | file name | ファイルネーム(すなわちモジュール名)順 |
'filename' | file name | 同上 |
'module' | file name | 同上 |
'ncalls' | call count | 呼び出した回数順 |
'pcalls' | primitive call count | 呼び出した回数順,ただし再帰的に呼ばれたものを除く |
'line' | line number | 行順 |
'name' | function name | 関数名順 |
'nfl' | name/file/line | |
'stdname' | standard name | 標準:ファイル名,関数名順 |
'time' | internal time | その関数が使った時間,内部で呼んだ関数の時間を除く |
'tottime' | internal time | 同上 |