Для этого есть два слоя. У нас есть большая часть # 1 для нашего тестирования. Мы собираемся начать на # 2.
Джанго в изоляции. Обычные юнит-тесты Django здесь хорошо работают. Создайте несколько тестов, которые будут проходить через несколько (менее 6) «типичных» вариантов использования. Получите это, опубликуйте это и т.д. Соберите данные о времени. Это не реальная производительность в сети, но это простой в работе тестовый сценарий, который можно использовать для настройки.
Весь ваш веб-стек. В этом случае вам нужен обычный сервер под управлением Squid, Apache, Django, MySQL, что угодно. Вам нужен второй компьютер (ы), чтобы клиент работал с вашим веб-сайтом через urllib2, выполняя несколько (менее 6) «типичных» вариантов использования. Получите это, опубликуйте это и т.д. Соберите данные о времени. Это по-прежнему не «реальная» производительность в сети, потому что она не через Интернет, но она настолько близка, насколько это возможно без действительно сложной настройки.
Обратите внимание, что # 2 (сквозное) включает в себя большое кэширование для производительности. Если ваши клиентские скрипты выполняют аналогичную работу, кэширование будет действительно полезным. если ваши клиентские скрипты каждый раз делают уникальные вещи, кэширование будет менее полезным.
Самое сложное - определить, какова "типичная" рабочая нагрузка. Это не функциональное тестирование, поэтому рабочая нагрузка не должна включать все. Кроме того, чем больше одновременных сеансов запущено вашим клиентом, тем медленнее он становится. Не пытайтесь оптимизировать ваш сервер, когда тестовый клиент является самой медленной частью обработки.
Редактировать
Если «построчно» означает «профилирование», то вам нужно запустить профилировщик Python.
https://docs.python.org/library/profile.html
Обратите внимание, что в слое Django ORM много кеширования. Поэтому запуск функции просмотра полдюжины раз для получения значимого набора измерений не имеет смысла. Вы должны выполнить «типичный» набор операций, а затем найти горячие точки в профиле.
Как правило, ваше приложение легко оптимизировать - вам не нужно много делать. Ваши функции просмотра должны быть короткими и не иметь обработки, чтобы говорить о них. Точно так же функции метода формы и модели должны быть очень короткими.