Содержит ли Django render_to_response кешированные шаблоны или загружается с диска каждый раз? - PullRequest
2 голосов
/ 15 марта 2011

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

Кеширует ли Django необработанные шаблоны в памяти или в CACHE_BACKEND илия должен реализовать это сам?

Ответы [ 4 ]

3 голосов
/ 15 марта 2011
0 голосов
/ 15 марта 2011

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

0 голосов
/ 15 марта 2011

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

Есть много способов реализовать кеш в Django. Все они описаны на справочной странице .

*1003* структуры кэша Django.

В зависимости от того, чего вы пытаетесь достичь, вы можете кэшировать целые запросы или только блоки шаблона. Прочитайте страницу выше для деталей.

0 голосов
/ 15 марта 2011

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

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

Если вы не хотите такого поведения, вы можете использовать другой загрузчик. На самом деле, это довольно легко сделать; просто подкласс от django.template.loader.filesystem.Loader, перегруз load_template и наслаждайтесь.

Хотя я довольно подозрительно кеширую. Если бы я внедрил такое решение, я бы обеспечил частое удаление кеша. Как каждые 10 секунд.

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