Проект Джанго завершен и работает.Что теперь? - PullRequest
9 голосов
/ 29 декабря 2010

Я только что закончил то, что я бы назвал небольшим проектом django, и довольно скоро он будет запущен. Это всего 6 моделей, но довольно сложный слой представления и множество записей для сохранения и извлечения.

Конечно, если забыть об огромном количестве ошибок, которые, вероятно, заполнят мой почтовый ящик наверху, каким будет следующий шаг к веб-сайту с наилучшей производительностью. Что можно подправить?

В последнее время я часто использую jmeter и уверен, что у меня есть хорошая база для будущих сравнений производительности, но дело в том, что я не уверен, как лучше начать, так как я жадный ублюдок, который хочет работать как можно меньше и собрать лучшие результаты.

Например, должен ли я попробовать подход к инфраструктуре, такой как распределенная база данных, или я должен идти с самим кодом, и в таком случае, есть ли что-то, что конкретно приводит к повышению производительности? По вашему опыту, что окупается больше?

В качестве личного вклада: у меня иногда создается впечатление, что некоторые операции, выполняемые с помощью сигналов django, выполняются быстрее, чем обычный способ просмотра. Но эй, я пристрастен. Я волнуюсь. :)

Личные анекдоты, подобные моему, приветствуются как способ стимулирования некоторых исследований, но некоторые мнения, основанные на фактах, гораздо более ценны. :)

Большое спасибо.

Ответы [ 2 ]

9 голосов
/ 29 декабря 2010

вот что мы сделали ...

  1. использовал django-debug-toolbar для анализа производительности каждой страницы (количество запросов и время ответа)
  2. используется структура кэша Django ... наиболее важно memcache
  3. используется Firebug скорость страниц для оптимизации загрузки страниц HTTP
  4. используется Google Analytics для общей статистики использования сайта (узнайте, что используется)
  5. используется инструмент тестирования Apache HTTP-сервера для быстрой статистики производительности

В целом, не пытайтесь оптимизировать производительность заранее.Во-первых, собирайте статистику использования / производительности, а затем отбирайте наиболее полезные изменения (усилия и выгоды), пока не получите достойных результатов.Цель должна состоять в том, чтобы избежать ненужной сложности (распределенные базы данных и т. Д.)

Затем, если вы все еще не довольны, рассмотрите эти (по порядку): больше ОЗУ (имеет большое значение), выделенный сервер базы данныхбалансировка нагрузки на несколько серверов приложений (с использованием perlbal и т. д.), выделенный медиа-сервер и т. д., см. их подробнее ( руководство по развертыванию , советы по производительности * 1032)*)

удачи ...

3 голосов
/ 29 декабря 2010

Что теперь?

Deploy. Если у вас есть MVP , то есть.

Другие мысли:

  1. Вы ничего не упомянули о тестировании. У вас есть юнит-тесты? Считаете ли вы, что тестовое покрытие является адекватным? Я бы рекомендовал прочесть книгу Карен М. Трейси Django 1.1. Тестирование и отладка .
  2. Вы смотрели семинар по развертыванию Джейкоба Каплана-Мосса ?
  3. Проводили ли вы какие-либо юзабилити-тесты? Вы можете прочитать Джоэл Тест статью Джоэла Спольски, или вы можете прочитать Ракетная хирургия Made Easy или Не заставляйте меня думать оба от Стива Круга.
  4. Говоря о Spolsky, как ваш процесс оценивается в Joel Test ?

Я знаю, что ваш вопрос был направлен на производительность, и может показаться, что мои мысли не связаны с производительностью. Однако размышления о некоторых из этих, казалось бы, не связанных между собой предметов могут привести вас в направлении, которое повлияет на производительность. Например, юзабилити-тестирование может выявить, что определенная функция может быть уменьшена в объеме, что приведет к повышению производительности из-за уменьшения объема данных, доставляемых конечному пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...