import time in python

自作pythonスクリプトの起動やimportが遅い場合の原因は,内部で使用するモジュールのimportが遅いことが原因の場合がある.モジュールのimportにかかる時間を計測する方法をメモしておく.

python -X importtime -c 'import nappy' 2> log.nappy

こうすると,import nappyで発生する全てのimportのそれぞれにかかった時間が log.nappy ファイルに書き出される.

ログ・ファイルを見れば一応何にどれだけ時間がかかったは分かるが,tunaというパッケージを使うと,それをより視覚的にしてくれる.

tuna log.nappy

上記コマンドを実行すると,ブラウザが開き,下図のようにかかった時間が表示される.これを見ると,nappyモジュールの読み込みの大半がnappy.ioで呼び出されるnumpyのimport時間であることが分かる.pandasなんかもimportに時間がかかるので,スクリプトの頭でimportするのではなく,実際に使う関数内でimportするなどする(lazy import)と,import nappyにかかる時間は短縮される.初めてimport pandasするときなどに時間はかかるので,全体としては速くはならないが,途中で細切れに時間がかかっても人間は許容できると思われる.