Встречается на собеседованиях • сегодня
Какие делал оптимизации производительности
- Профилирование кода с помощью
cProfileилиline_profilerдля выявления узких мест. - Оптимизация алгоритмов – замена O(n²) на O(n log n) или O(n) где возможно.
- Использование встроенных функций (
map,filter,itertools) вместо циклов. - Кеширование через
functools.lru_cacheдля рекурсивных/тяжелых функций. - Векторизация операций с
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- JIT-компиляция через
numbaдля математических операций. - Работа с памятью – генераторы (
yield) для больших данных. - Асинхронность (
asyncio) для I/O-bound задач. - Выбор структур данных –
setдля поиска,dequeдля FIFO. - Сборщик мусора – ручное управление (
gc.disable()в критичных местах).
Для CPU-bound задач – параллелизм (multiprocessing), для I/O – асинхронность.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы