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

Как оптимизировать программу

Оптимизация Python-программ включает несколько ключевых подходов:

  1. Профилирование — используй cProfile или timeit для выявления узких мест. Оптимизируй только то, что действительно медленно.

  2. Алгоритмическая оптимизация — выбирай структуры данных и алгоритмы с оптимальной сложностью (O-нотация). Например, для частых поисков используй set вместо list.

  1. Использование встроенных функций — они обычно реализованы на C и работают быстрее. Например, map() и генераторы списков ([x*2 for x in range(10)]).

  2. Кэширование — применяй functools.lru_cache для рекурсивных или тяжелых функций:

python
from functools import lru_cache

@lru_cache(maxsize=128)
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)
  1. Оптимизация памяти — используй генераторы (yield) для больших данных вместо списков.

  2. Компиляция — для критичных участков применяй Cython или Numba.

  3. Библиотеки — NumPy/Pandas для числовых операций, asyncio для I/O-bound задач.

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

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

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

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

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