Оптимизация производительности Python с помощью Cython

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

cythonpythonоптимизация

ℹ️ Если вы хотите повысить производительность своих Python-приложений, особенно при выполнении вычислительно интенсивных задач, использование Cython может стать отличным решением. Cython позволяет компилировать Python-код в C, что может значительно ускорить выполнение.

Основные шаги для работы с Cython:

  1. 1. Установка Cython:

    pip install cython
  2. 2. Пример кода на Python:

    Напишем простой пример на Python, который мы будем оптимизировать:

    # example.py
    
    def fib(n):
        if n <= 2:
            return 1
        return fib(n - 1) + fib(n - 2)
    
    print(fib(30))
  3. 3. Преобразование Python-кода в Cython:

    Создайте файл example.pyx:

    # example.pyx
    def fib(int n):
        if n <= 2:
            return 1
        return fib(n - 1) + fib(n - 2)
    
    print(fib(30))
  4. 4. Компиляция Cython-кода:

    Создайте файл setup.py для компиляции Cython-кода:

    # setup.py
    
    from distutils.core import setup
    from Cython.Build import cythonize
    
    setup(
        ext_modules = cythonize("example.pyx")
    )

    Выполните компиляцию:

    python setup.py build_ext --inplace
  5. 5. Запуск скомпилированного кода:

    python example.pyx

✳️ Cython — это мощный инструмент для оптимизации производительности Python-приложений. Использование Cython позволяет значительно ускорить выполнение кода, особенно в вычислительно интенсивных задачах.

tags: #полезно #разработка #python

🧭 @recura_tech

Скриншот редактора кода с примером setup.py и example.pyx на зелёном фоне; иллюстрация компиляции и запуска Cython-модуля.
Пример кода и setup-файл для компиляции Cython-модуля.

Читайте так же