使用Cython提升python執行效率
阿新 • • 發佈:2021-02-16
技術標籤:python
簡介
我們都知道python是容易上手的,寫起來比較方便,但是這是犧牲了程式的執行速度,而我們在寫程式的過程中有的關鍵功能又必須注重效率。
這時候我們可以藉助cython來實現關鍵部分的程式碼,使程式的執行效率得到提升。
先看一個例子:
#.py
import pyximport
pyximport.install()
import test
import time
num = 0
start = time.time()
for i in range(20000):
for i in range(20000):
num+=1
end = time.time( )
print("python:",end-start)
start = time.time()
a=test.func(20000)
end = time.time()
print("cython:",end-start)
test模組為cython編寫的程式碼,如下
#.pyx
def func(num):
cdef int x=0
for i in range(num):
for j in range(num):
x+=1
return x
執行結果:
python寫的程式碼需要執行50s,而cython只要7s,快了七倍多
1.安裝cython
pip install Cython
2.然後新建pyx檔案,在檔案內編寫cython程式碼,cython程式碼語法跟python語法基本一樣。
3.在同級目錄下新建setup.py檔案,寫入如下程式碼。
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("test.pyx") #test.pyx 為新建pyx檔名稱
)
4.編譯,開啟cmd進入到setup.py檔案所在路徑下,執行python steup.py build_ext --inplace編譯(或在pycharm的終端中執行)