Хотя этот вопрос достаточно широк, но в общих чертах ДА. Это ускорит ваш код и где-то в порядке 100.
Для справки, Cython документы говорит, я цитирую
Однако для повышения производительности критического кода, часто бывает полезно добавить статические тип декларации, так как они позволяют Cython выйти из динамической природы кода Python и создавать простой и быстрый код C - иногда быстрее на порядки
Основная причина, почему языки, как C/C++ быстрее, так это то, что они создают машинный язык ассемблера для настройки всей оптимизации, зависящей от оборудования. Это достигается с помощью компиляторов в основном потому, что некоторые вещи, как
- статически типизированных переменной
- петля разворачивая
- прогнозирования отделения
и т.д ..
Теперь Одна из важной особенностью статично типизированная переменная широко используется Cython. Поскольку переменные python являются безликими и переменными C нет, Cython может предоставить пользователям гибкость, чтобы статически фиксировать тип своих переменных.
В Cython doc website они показали, как просто указывая тип фактически произведенного 35% более высокая производительность.
ПримечаниеОднако мое последнее слово в том, что вы быть осторожным при преобразовании кода Python в Cython, потому что вы можете использовать некоторые рамки/API в вашем проекте, которые не имеют поддержки Cython. Когда-нибудь, даже если вы преобразуете свой код в Cython, это почти ничего не меняет. Так что все зависит от вашего кода.
Следовательно, сначала убедитесь в полной переносимости кода Python в Cython, а также проверьте, что это абсолютно необходимо.
Редактировать 1 Еще одна вещь заключается в том, что преобразование кода в Cython делает его менее читаемым, поэтому, пожалуйста, помните об этом.
Опять Цитируя Cython Docs
Следует, однако, отметить, что заявления типа могут сделать исходный код более многословным и, следовательно, менее читаемым.В связи с этим обескуражен использовать их без уважительной причины, например, когда тесты доказывают, что они действительно делают код значительно быстрее в исполнении критической секции
Edit 2 Отвечая на вопрос Или мне нужно переписать мой код в цитоне, чтобы увидеть улучшение?
No потому что компилятор Cython делает все это для вас.
Компилятор Cython преобразует его в код C, который делает эквивалентные вызовы API Python/C.
Поскольку Cython может принимать практически любой действительный исходный файл python, одна из самых сложных задач при запуске - это просто выяснить, как скомпилировать расширение.
Для получения дополнительной информации посетите this
Чтобы получить лучшее улучшение с помощью 'cython', вам необходимо прочитать документы' cython'. Был задан ряд вопросов и ответов о получении ожидаемых улучшений с помощью cython. Изучите их. – hpaulj
Кроме того, я не понимаю, что должен делать ваш пример. Что такое 'convert_to_cython.py'? Похоже, вы путаете файл ['setup.py' для расширения distutils] (http://docs.cython.org/src/userguide/source_files_and_compilation.html) для вашего реального исходного кода Python. –