Простое профилирование Django приложений

23 июня 2012

Оказывается, профилировать Django приложения очень просто. Для того, чтобы посмотреть SQL запросы, есть замечательный Django Debug Toolbar, а для классического профилирования времени/вызовов есть вот такой рецепт:

  1. Добавляем в requirements.txt django-extensions==0.9
  2. Ставим kcachegrind через порты: sudo port install kcachegrind
  3. Запускаем приложение: ./manage.py runprofileserver --kcachegrind --prof-path=/tmp/my-profile-data
  4. Вызываем интересующие нас view
  5. Запускаем X11, потом kcachegrind и скармливаем ему лог.

Встроенный cProfile мне показался не слишком удобным.