Back to questions
Junior — Middle
64
Бывали ли у вас ситуации, когда вам нужно было улучшить производительность Python-программы?
Companies where asked
Zvonok
Answer from AI
sobes.tech AI
Да, часто для улучшения производительности Python-программ применяют несколько подходов:
- Профилирование кода с помощью модулей
cProfileилиtimeitдля выявления узких мест. - Оптимизация алгоритмов и структур данных — замена неэффективных алгоритмов на более быстрые.
- Использование встроенных функций и библиотек — они обычно реализованы на C и работают быстрее.
- Кэширование результатов с помощью
functools.lru_cacheдля дорогих вычислений. - Параллелизация и многопоточность — с учётом ограничений GIL, например, через multiprocessing.
- Использование компилируемых расширений — например, Cython или PyPy.
Пример использования lru_cache для ускорения рекурсивной функции:
from functools import lru_cache
@lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(30))