Внедряет ли встраивание кода C ++ в Python ваше приложение на Python быстрее?

Внедряет ли встраивание кода C ++ в Python с использованием ctypes, boost.python и т. Д. Ваше приложение на Python быстрее?

Предположим, я подаю заявку на pygtk и мне нужны некоторые функции, которые должны быть быстрыми. Так что, если я буду использовать c ++ для определенных задач в моем приложении, будет ли это полезно?

И каковы другие варианты сделать код на Python быстрее?

10

Решение

Переписывание критичных для производительности частей вашего кода на C ++ может быть одним из вариантов. Чтобы сделать это эффективно, сначала нужно понять, где находятся узкие места. Лучший способ сделать это — написать сначала все на чистом Python, а затем профиль.

Другой вариант может быть использовать PyPy.

Наконец, если вы обнаружите, что узким местом являются численные вычисления, то NumPy стоит посмотреть.

Стоит отметить, что если, например, окажется, что ваш код связан с вводом / выводом, то ни один из вышеперечисленных вариантов не поможет.

7

Другие решения

Это зависит, нет однозначного ответа. Если вы пишете плохой код на C ++, он может быть даже медленнее, чем хорошо написанный код Python.

Предполагая, что вы можете писать качественный код C ++, вы можете ожидать ускорения в 20 раз в критически важных для производительности частях.

Как говорит другой ответ, NumPy является хорошим вариантом для устранения узких мест (если вы думаете о матричных операциях, а не о циклах!); SciPy поставляется с ткачом, который позволяет встраивать встроенный C ++ и другие вкусности.

2

По вопросам рекламы [email protected]