#python #cpp
Здравствуйте еще раз. Стоит задача переписать существующие классы/структуры данных в Python на C. Слабо пока себе представляю, как это должно работать, но задача поставлена, необходимо изучить. Подскажите пожалуйста, как сие должно выглядеть? Желательно реальный опыт ибо ссылки не всегда спасают. А главное, насколько это ускорит выполнение программного кода? Альтернативой данному виду маразма своих начальников вижу компиляцию Python в исполняемое приложение (linux-binary, windows-exe). Что думаете по этому вопросу?
Ответы
Ответ 1
Если стоит задача ускорить исполнение, то можно выявить узкие места профайлером и переписать эти места с помощью C extensions, получится, что будет работать тот же код, но быстрее. Подробнее тут Extending Python with C or C++Ответ 2
Классическая компиляция в исполнимый бинарник мало поможет, так как там просто берут и вклеивают интерпретатор. Но есть такая приблуда - PyPy. Умеет компилировать в С код. Поэтому, генерим С код, смотрим на производительность, потом пробуем дошлифовывать профайлером. Но есть ещё один путь. В питоне, что бы получить хорошую производительность в большинстве случаев достаточно побольше использовать стандартные либы, а не пытаться переписать стандартные алгоритмы на питоне ручками. Может производительности и хватит.Ответ 3
Смотрите в сторону Cython.Ответ 4
cython решение вашей проблемы. Универсальное и исчерпывающее. )
Комментариев нет:
Отправить комментарий