1. 程式人生 > 其它 >使用Cython提升python執行效率

使用Cython提升python執行效率

技術標籤: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,快了七倍多

cython的安裝及使用
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的終端中執行)

5.編譯成功後在同級目錄下新建測試檔案main.py,程式碼如上例子py檔案所示。執行,即可得到上述例子