оптимизация django cache_page против template.loaders.cached.Loader - PullRequest
0 голосов
/ 09 октября 2018

При тестировании некоторых оптимизаций Django были получены неожиданные результаты между cache_page vs template cached.Loader .Я ожидал, что cache_page будет более производительным, поскольку это прямой поиск в кэше, а не прохождение полного уровня шаблонов.Но я, должно быть, неправильно понимаю нечто фундаментальное, потому что последовательно cached.Loader дает лучшие результаты.

Мой тестовый пример:

  1. Загрузка простой HTML-страницы с несколькими включаемыми шаблонами.
  2. Использование Django 1.10
  3. redis в качестве кэша по умолчанию
  4. использование ab для загрузки теста с n=1000, c=20

Включено cached.Loader с этим в settings.py:

'loaders':[('django.template.loaders.cached.Loader', [
            'django.template.loaders.filesystem.Loader',
            'django.template.loaders.app_directories.Loader',
        ]),
]

Включено cache_page с этим декоратором:

@cache_page(60 * 15)
def home(request):
    return render(request, "index2.html",{"static_path":static('myapp/')})

Я комментирую и включаю каждую стратегию кэширования независимо.Последовательно это выглядит так:

  • loaders.cached.Loader: ~ 90 запросов / сек
  • @cache_page: ~ 60 запросов / сек

Любая причина, почемуЯ вижу такой резкий рост с cached.Loader (около 30%) по сравнению со стратегией cache_page?

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