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