Я просто наткнулся на Cython, пока я искал способы оптимизации кода Python. Я читал разные сообщения о stackoverflow, вики python и читал статью «Общие правила оптимизации».Cython Speed Boost против юзабилити
Cython - это то, что больше всего меня интересует; вместо того, чтобы писать C-код для себя, вы можете выбрать другие типы данных в вашем коде python.
Вот глупый тест я попробовал,
#!/usr/bin/python
# test.pyx
def test(value):
for i in xrange(value):
i**2
if(i==1000000):
print i
test(10000001)
$ время питон test.pyx
real 0m16.774s
user 0m16.745s
sys 0m0.024s
$ времени Cython test.pyx
real 0m0.513s
user 0m0.196s
sys 0m0.052s
Теперь, если честно, я `ошарашен. Код, который я использовал здесь, - это чистый код python, и все, что я изменил, является интерпретатором. В этом случае, если cython это хорошо, то почему люди все еще используют традиционный интерпретатор Python? Существуют ли какие-либо проблемы с безопасностью для Cython?
Вы измеряете время выполнения скрипта Python и время компиляции некоторого кода Cython. Это не имеет никакого значения. –
Что касается вашего последнего замечания: это в основном то, что пытается сделать Джулия: создание оптимизированного низкоуровневого транслятора кода на согласованном высокоуровневом машинном языке и четкое отображение этого намерения с самого начала, чтобы оно улучшалось, даже если оно означает, что некоторые функции высокого уровня теряются таким образом, как динамическая типизация. – gaborous
@SturlaMolden: Разве это не тест интерпретации Python против Cython и не выполняется? Если это так, это имеет смысл. – Eddy