Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Как подружить Python и C++ | Python to bin/exe

#python #cpp


Здравствуйте еще раз.
Стоит задача переписать существующие классы/структуры данных в Python на C.
Слабо пока себе представляю, как это должно работать, но задача поставлена, необходимо
изучить. Подскажите пожалуйста, как сие должно выглядеть? Желательно реальный опыт
ибо ссылки не всегда спасают. А главное, насколько это ускорит выполнение программного
кода?
Альтернативой данному виду маразма своих начальников вижу компиляцию Python в исполняемое
приложение (linux-binary, windows-exe). Что думаете по этому вопросу?    


Ответы

Ответ 1



Если стоит задача ускорить исполнение, то можно выявить узкие места профайлером и переписать эти места с помощью C extensions, получится, что будет работать тот же код, но быстрее. Подробнее тут Extending Python with C or C++

Ответ 2



Классическая компиляция в исполнимый бинарник мало поможет, так как там просто берут и вклеивают интерпретатор. Но есть такая приблуда - PyPy. Умеет компилировать в С код. Поэтому, генерим С код, смотрим на производительность, потом пробуем дошлифовывать профайлером. Но есть ещё один путь. В питоне, что бы получить хорошую производительность в большинстве случаев достаточно побольше использовать стандартные либы, а не пытаться переписать стандартные алгоритмы на питоне ручками. Может производительности и хватит.

Ответ 3



Смотрите в сторону Cython.

Ответ 4



cython решение вашей проблемы. Универсальное и исчерпывающее. )

Комментариев нет:

Отправить комментарий