Встречается на собеседованиях • сегодня

Какие делал оптимизации производительности

  1. Профилирование кода с помощью cProfile или line_profiler для выявления узких мест.
  2. Оптимизация алгоритмов – замена O(n²) на O(n log n) или O(n) где возможно.
  3. Использование встроенных функций (map, filter, itertools) вместо циклов.
  4. Кеширование через functools.lru_cache для рекурсивных/тяжелых функций.
  5. Векторизация операций с numpy вместо чистого Python.

Пример:

python
# Было (медленно)
result = []
for x in range(10_000):
    result.append(x * 2)

# Стало (быстрее)
result = [x * 2 for x in range(10_000)]  # или numpy.arange(10_000) * 2
  1. JIT-компиляция через numba для математических операций.
  2. Работа с памятью – генераторы (yield) для больших данных.
  3. Асинхронность (asyncio) для I/O-bound задач.
  4. Выбор структур данныхset для поиска, deque для FIFO.
  5. Сборщик мусора – ручное управление (gc.disable() в критичных местах).

Для CPU-bound задач – параллелизм (multiprocessing), для I/O – асинхронность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы