Внедряет ли встраивание кода C ++ в Python с использованием ctypes, boost.python и т. Д. Ваше приложение на Python быстрее?
Предположим, я подаю заявку на pygtk и мне нужны некоторые функции, которые должны быть быстрыми. Так что, если я буду использовать c ++ для определенных задач в моем приложении, будет ли это полезно?
И каковы другие варианты сделать код на Python быстрее?
Переписывание критичных для производительности частей вашего кода на C ++ может быть одним из вариантов. Чтобы сделать это эффективно, сначала нужно понять, где находятся узкие места. Лучший способ сделать это — написать сначала все на чистом Python, а затем профиль.
Другой вариант может быть использовать PyPy
.
Наконец, если вы обнаружите, что узким местом являются численные вычисления, то NumPy
стоит посмотреть.
Стоит отметить, что если, например, окажется, что ваш код связан с вводом / выводом, то ни один из вышеперечисленных вариантов не поможет.
Это зависит, нет однозначного ответа. Если вы пишете плохой код на C ++, он может быть даже медленнее, чем хорошо написанный код Python.
Предполагая, что вы можете писать качественный код C ++, вы можете ожидать ускорения в 20 раз в критически важных для производительности частях.
Как говорит другой ответ, NumPy является хорошим вариантом для устранения узких мест (если вы думаете о матричных операциях, а не о циклах!); SciPy поставляется с ткачом, который позволяет встраивать встроенный C ++ и другие вкусности.