Выбор ответа Middle Память и производительность спрашивают часто обновлено

С чего начинать оптимизацию

Вопрос

Эндпоинт отвечает 3 секунды. С чего начать?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Снять профиль (cProfile, py-spy). Без измерений легко оптимизировать не то: часто время уходит на десятки запросов к БД или внешний HTTP, а не на Python-код.

Варианты ответа

  1. Переписать горячие функции на Cython
  2. Снять профиль (cProfile, py-spy)правильный ответ
  3. Заменить все списки на кортежи
  4. Добавить больше воркеров gunicorn

Разбор

Без измерений легко оптимизировать не то: часто время уходит на десятки запросов к БД или внешний HTTP, а не на Python-код. Профиль показывает узкое место. Cython и микрооптимизации полезны только для доказанно горячего CPU-кода. Больше воркеров повышает пропускную способность, но не уменьшает время одного медленного ответа.

Ответьте сами, а не прочитайте

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