在我們以前的文章中,,曾經(jīng)講過計(jì)算斐波那契數(shù)列的幾種方法,,其中基于遞歸的方法是速度最慢的,例如計(jì)算第40項(xiàng)的值,需要36秒,。如下圖所示: 要提高運(yùn)算速度,,根本辦法當(dāng)然是改進(jìn)算法。不過算法的提高是一個(gè)長期積累加上靈機(jī)一動(dòng)的過程,。我們今天要講的,,是一個(gè)不費(fèi)腦筋,立竿見影的方法——把 Python 代碼編譯成 C 語言代碼,。通過 C 語言的運(yùn)行效率來加速計(jì)算過程,。 這個(gè)過程看起來很復(fù)雜,但實(shí)際上你并不需要編寫一行 C 語言代碼,。你需要做的只是使用一個(gè)叫做 Cython 的庫把 Python 代碼編譯為 C 語言代碼即可,。 首先我們來安裝 Cython,就像安裝普通的第三方庫一樣: python3 -m pip install cython 安裝完成以后,,我們單獨(dú)寫計(jì)算斐波那契數(shù)列的函數(shù):
非常簡(jiǎn)單的遞歸寫法,。然后關(guān)鍵來了,我們要把這個(gè)文件保存為 然后我們創(chuàng)建一個(gè) from setuptools import setup 如下圖所示: 這個(gè)文件的作用,,就是調(diào)用 Cython 的 接下來,開始編譯代碼,,執(zhí)行如下命令:
我的 Python 是 Python3.7,,所以運(yùn)行完成以后,會(huì)生成一個(gè) 還有一個(gè)文件叫做 你需要做的,,僅僅是直接調(diào)用你的函數(shù)。我們另外創(chuàng)建一個(gè)文件 import time 運(yùn)行效果如下圖所示: 計(jì)算斐波那契數(shù)列第40項(xiàng)只需要5秒鐘,速度妥妥變成 Python 版本的7倍。 使用 Cython,,不僅可以提高程序的運(yùn)行速度,,還可以把你的核心代碼轉(zhuǎn)換為 關(guān)于 Cython 的更多介紹,請(qǐng)閱讀它的官方文檔[1] 有同學(xué)可能會(huì)問,,當(dāng)前文件夾下面既然有 這是因?yàn)椋?code>import只會(huì)從后綴為 參考資料官方文檔: https://cython./ END 掃描二維碼 |
|