производительность шаблонов django - PullRequest
4 голосов
/ 23 июня 2011

Что более эффективно в Django: визуализировать объект с использованием языка шаблонов? или нажать на код для рендеринга объекта с помощью функции templatetag с использованием языка python?

Ответы [ 3 ]

3 голосов
/ 23 июня 2011

Вопрос вроде бессмысленный. Шаблоны всегда будут работать медленнее, чем настраиваемое вручную решение для рендеринга, но теги шаблонов по-прежнему должны проходить через механизм шаблонов, поэтому вы теряете там любое преимущество. Если вам нужна сверхвысокая эффективность, рассмотрите возможность записи всего HTML-кода как массива строк Python, присоедините их () один раз, а затем передайте свой HTML-код обратно как тело объекта HTTPResponse.

Или, вы можете попробовать все три и профилировать их. Поскольку мы не знаем ваш код, мы не можем выполнить эту работу за вас. После нескольких экспериментов вы должны быть удовлетворены тем, какой подход вам подходит.

Шаблонный движок почти никогда не является вашим узким местом. Ваша база данных является вашим наиболее вероятным узким местом. У вас установлена ​​панель инструментов Django, верно? Если движок шаблонов не в том месте, где ваша производительность находится под вопросом, всегда используйте наиболее дешевое для вас решение.

3 голосов
/ 23 июня 2011

Это похоже на аргумент о наиболее эффективном способе добавления строк (практически каждый язык программирования имеет такой аргумент).Это 2011 год, а не 1970 год. Даже компьютеры уровня потребителя имеют вычислительную мощность и резервы памяти, чтобы соответствовать суперкомпьютерам последнего десятилетия.Сетевой сервер класса машин имеет гораздо больше.Экономить цикл или два на процессоре в наши дни довольно бессмысленно.Одно дело, когда вы разрабатываете системный код ОС или низкоуровневые системные процессы, но для разбора шаблона вы тратите свое время.

1 голос
/ 23 июня 2011

Я бы сказал, что это примерно то же самое;выберите самый чистый путь, и если вам нужна скорость, кешируйте ее.

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