У меня одного такое?
Django 1.1.1, БД SQLite.
Ниже то что удалось выдрать из django-debug-toolbar.
Вот собственно дублирующиеся запросы:
SELECT "auth_permission"."id", "auth_permission"."name",
"auth_permission"."content_type_id", "auth_permission"."codename" FROM
"auth_permission" INNER JOIN "django_content_type" ON
("auth_permission"."content_type_id" = "django_content_type"."id")
ORDER BY "django_content_type"."app_label" ASC,
"auth_permission"."codename" ASC
А вот стек вызовов:
Line Method File
226 wrapper /home/alex/Develop/Django/test/env/lib/python2.6/site-
packages/django/contrib/admin/options.py
186 inner /home/alex/Develop/Django/test/env/lib/python2.6/site-
packages/django/contrib/admin/sites.py
873 change_view /home/alex/Develop/Django/test/env/lib/python2.6/
site-packages/django/contrib/admin/options.py
590 render_change_form /home/alex/Develop/Django/test/env/lib/
python2.6/site-packages/django/contrib/admin/options.py
231 render /home/alex/Develop/Django/test/env/lib/python2.6/site-
packages/django/contrib/admin/widgets.py
36 render /home/alex/Develop/Django/test/env/lib/python2.6/site-
packages/django/contrib/admin/widgets.py
9 {% if field.is_checkbox %}
10 {{ field.field }}{{ field.label_tag }}
11 {% else %}
12 {{ field.label_tag }}{{ field.field }}
13 {% endif %}
14 {% if field.field.field.help_text %}<p
class="help">{{ field.field.field.help_text|safe }}</p>{% endif %}
15 </div>
2010/3/15 Zodiak <desz...@gmail.com>:
--
Best regards, Yuri V. Baburov, ICQ# 99934676, Skype: yuri.baburov,
MSN: bu...@live.com
которые не загружены. Поэтому при обращении к полю идет обращение к
одной и той же таблице, но с разным id. Всего таких обращений около
30 на чистой джанге.
Ставил 1.0.4 и 1.2бета - то же самое.
ОЧЕНЬ ОЧЕНЬ не хочется из-за такой фигни самому писать бэкенд...
Ведь оставить такие тормоза нельзя.
--
С уважением,
Alex mailto:DesZ...@gmail.com
> ОЧЕНЬ ОЧЕНЬ не хочется из-за такой фигни самому писать бэкенд...
> Ведь оставить такие тормоза нельзя.
Почему?
Вы писали 15 марта 2010 г., 17:37:54:
Научный руководитель придушит. Он в курсе что больше всего
производительности крадут: межпроцессовое взаимодействие (в т.ч.
получение данных из БД), динамическое выделение памяти и по т.д.
по уменьшению. А в дипломе я должен по максимуму показать свои знания
и умения...
Кстати пробовал на мускуле (вдруг sqlite что-то не поддерживает) - те же тормоза
Вы писали 15 марта 2010 г., 19:06:00:
Лучше по теме что-нибудь скажите, без обид.
Производительность имела смысл в 70х, когда компьютеры были медленные.
Сейчас наибольший смысл в производстве имеет экономия времени
программистов различными способами, потому что расходы на коммуникацию
между ними, синдром NIH и без того высокая стоимость изменения кода
делают практически невозможными большие проекты в разумные сроки.
А те, кто в 2010м беспокоятся о производительности, до сих пор пишут в
одиночку на ассемблере, а не занимаются веб-программированием.
Потому что иначе они с ума сойдут, думая о том, как неэффективно
генерируются страницы в django. Дело ведь даже не в памяти или в
межпроцессной коммуникации. Главный вопрос, кому нужны эти
дополнительные уровни абстракции, которые время генерации страницы от
0.0001 секунды (основное ограничение будет тогда скорость сети,
скажем, 100 мбит/сек) превращают в 3 секунды? Python как большой
тормоз, веб-сервер, WSGI, Middleware, Auth Backend, Context Processor,
Template (и язык шаблонов), Form, Model, SQL, база данных со своими
уровнями оптимизации и кэширования запросов? Может, лучше написать
приложение на С, которое будет просто раздавать статические файлы из
памяти, и иногда, когда нужно, генерировать динамические файлы на
основе данных в памяти? Ведь так будет существенно быстрее.
Так и заясните своему научному руководителю. Заодно приведите пример
Facebook, который удерживает лидирующие позиции на рынке, в том числе,
за счёт применения жутко неэффективного языка php!
Надеюсь, вы-то сами хоть понимаете, зачем дополнительные уровни
абстракции нужны?
А то, видимо, дипломированный специалист в вашем лице будет уметь
выложить стенку из 3х кирпичей, и не представлять, чем его действия
_принципиально_, подчёркиваю, _принципиально_, отличаться от
строительства дома.
2010/3/15 Alex <desz...@gmail.com>:
--
2010/3/15 Yuri Baburov <bur...@gmail.com>:
> Так и заясните своему научному руководителю. Заодно приведите пример
> Facebook, который удерживает лидирующие позиции на рынке, в том числе,
> за счёт применения жутко неэффективного языка php!
Маленькое замечание - они не чистый PHP используют, у них там транслятор
PHP (в C++ по-моему), т.е. код бинарный в результате.
По теме полностью согласен с Юрием - преждевременная оптимизация есть
первейшее зло. Рекомендую к прочтению книгу "Искусство программирования
для Unix", всего лишь однократное её прочтение спасает от многих болячек
(даже если вы пишете исключительно на дотнетах под винду).
С уважением, Стас
> По теме полностью согласен с Юрием - преждевременная оптимизация есть
> первейшее зло. Рекомендую к прочтению книгу "Искусство программирования для
> Unix", всего лишь однократное её прочтение спасает от многих болячек (даже
> если вы пишете исключительно на дотнетах под винду).
Ага. И добавить товарищу дипломнику в список литературы!
Ну, учитывая, что у них сотни миллионов юзеров, возможно, для них это
было весьма и весьма.
Добрый день!30 (или даже 300) запросов по первичному ключу для нормальной реляционной базы плевое дело.Вот, к примеру, скорость обработки запросов на бесплатной Oracle XE на слабом ноутбуке под Ubuntu 9.10 с 1 гигом оперативы:
Arcady Chumachenko, в debug toolbar время выполнения запросов я не
смотрел, но страница генерится секунды 3-4. Таблицы создавались syncdb-
ом, со всеми индексами.
> 2010/3/15 Alex <deszod...@gmail.com>:
>
>
>
> > Здравствуйте, Yuri.
>
> > Вы писали 15 марта 2010 г., 17:37:54:
>
> >> 2010/3/15 Alex <deszod...@gmail.com>:
Arcady Chumachenko, в debug toolbar время выполнения запросов я не
смотрел, но страница генерится секунды 3-4. Таблицы создавались syncdb-
ом, со всеми индексами.
2010/3/15 Arcady Chumachenko <arcady.ch...@gmail.com>:
Буду презнателен, если кто подскажет как с выключенным тулбаром
посмотреть какие запросы делаются к БД.
On 15 мар, 22:08, Alex Koshelev <daeva...@gmail.com> wrote:
> Да. и дебаг-тулбар не забудьте выключить.
> ---
> Alex Koshelev
>
> 2010/3/15 Arcady Chumachenko <arcady.chumache...@gmail.com>:
>
>
>
> > 2010/3/15 Zodiak <deszod...@gmail.com>
А вообще в дебаге все запросы логируются в конекшенах к базам. В
документации рассказано как их получить.
---
Alex Koshelev
2010/3/15 Zodiak <desz...@gmail.com>:
А теперь начинается уличная магия...
Выключил debug-toolbar и ... вуаля! Вместо 3-4 секунд страница
открылась за одно мгновение!
Хотя я все еще подозреваю что запросов делается много, но то что это
не заметно уже радует.
Буду презнателен, если кто подскажет как с выключенным тулбаром
посмотреть какие запросы делаются к БД.
2010/3/15 Arcady Chumachenko <arcady.ch...@gmail.com>:
> По теме полностью согласен с Юрием - преждевременная оптимизация есть
> первейшее зло. Рекомендую к прочтению книгу "Искусство программирования
> для Unix", всего лишь однократное её прочтение спасает от многих болячек
> (даже если вы пишете исключительно на дотнетах под винду).
Для равновесия предлагаю прочитать "Джоэл о программировании", а именно
главу "Дырявые абстракции"
>> По теме полностью согласен с Юрием - преждевременная оптимизация есть
>> первейшее зло. Рекомендую к прочтению книгу "Искусство программирования
>> для Unix", всего лишь однократное её прочтение спасает от многих болячек
>> (даже если вы пишете исключительно на дотнетах под винду).
>
> Для равновесия предлагаю прочитать "Джоэл о программировании", а именно
> главу "Дырявые абстракции"
Прочитал. В чём же противоречие между книгой "Искусство программирования
для Unix", в которой подробнейшим образом говорится о базовых,
основополагающих вещах, и главой из другой книги, где говорится, что
помимо абстракций необходимо знать базовые вещи ? Поясните, пожалуйста.
С уважением, Стас
> Прочитал. В чём же противоречие между книгой "Искусство программирования
> для Unix", в которой подробнейшим образом говорится о базовых,
> основополагающих вещах, и главой из другой книги, где говорится, что
> помимо абстракций необходимо знать базовые вещи ? Поясните, пожалуйста.
Собственно предложение прочесть относилось не столько к вашему
сообщению, сколько к сообщения Юрия и Михаила:
> Надеюсь, вы-то сами хоть понимаете, зачем дополнительные уровни
> абстракции нужны?
> А то, видимо, дипломированный специалист в вашем лице будет уметь
> выложить стенку из 3х кирпичей, и не представлять, чем его действия
> _принципиально_, подчёркиваю, _принципиально_, отличаться от
> строительства дома.
Джоэл говорит о том, что все абстракции имеют дыры. И их приходится
учитывать. Так что называть
> Какой забавный (если не сказать сильнее) научный руководитель.
за желание уменьшить количество межпроцессовых вызов, мягко говоря,
странно.
Тогда очень извиняюсь :-)
Прошло 7 лет. Джанга всё так же необъяснимо тупит. Страницы открываются 2 секунды на локальной машине.
--
Вы получили это сообщение, поскольку подписаны на группу "Django russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес django-russian+unsubscribe@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Тогда причина не в Django ;) загляните в документацию.
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес django-russian+unsubscribe@googlegroups.com.
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "Django russian".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/django-russian/oeWqwyzD-jg/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес django-russian+unsubscribe@googlegroups.com.