Pythonのデバッグ/プロファイルリング

By tell-k

Elevator Pitch

Pythonでデバッグやプロファイリングをする一般的な方法について紹介します

普段Pythonコードを書いてハマった時、より効率よく改善したい時に、 使える手段/ライブラリを広く浅く紹介します。

なるべく初心者にもわかり易いようにPythonコードを交えながら話します。

Description

Python で デバッグ、プロファイリングをする時に、一度は触るであろう pdbやcProfileを皮切りに効率良くデバッグ、プロファイリングをするための方法、 より良いツール/ライブラリ群の紹介をしたいと思います。主に扱うトピックは以下のようなことを考えてます。

  • デバッグ&プロファイリング
  • ボトルネックを見つける
  • パフォーマンス改善Tips
  • ライブラリ&ツールの紹介

Pythonプログラムを修正/改善する時に役立つツール/方法を一通り知ることができます。

Notes

デバッグに関しての去年良い発表があったので、プロファイリングに重きを置いて話そうと思います。

  • デバッグ&プロファイリングとは

  • pdb
  • cProfile
  • timeit
  • PudB

  • ボトルネックを見つける
  • RunSnakeRun
  • line_profiler
  • memory_profiler

  • パフォーマンス改善Tips

  • CPUバウンド/IOバウンド
  • メモリの使用量を削減する
  • 並行処理
  • さらなる改善するためには?

  • その他ライブラリ&ツール
  • Benchmarker
  • django-debug-toolbar
  • PyCharm