Я только что наткнулся на Cython, когда искал способы оптимизировать код Python. Я читал различные сообщения на Stack Overflow, вики python и читал статью «Общие правила оптимизации».
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)
$ время python 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?