Python下使用Psyco模塊優(yōu)化運行速度
今天介紹下Psyco模塊,Psyco模塊可以使你的Python程序運行的像C語言一樣快。
都說Python語言易用易學(xué),但性能上跟一些編譯語言(如C語言)比較要差不少,這里可以用C語言和Python語言各編寫斐波納契數(shù)列計算程序,并計算運行時間:
C語言程序
int fib(int n){
if (n < 2)
return n;
else
return fib(n - 1) + fib(n - 2);
}
int main() {
fib(40);
return 0;
}
Python寫的
def fib(n):
if n < 2:
return n
else:
return fib(n - 1) + fib(n - 2)
fib(40)
運行時間
$ time ./fib
3.099s
$ time python fib.py
16.655s
可以看到運行時間還是有點差距的,這里的差距大概是5倍左右,現(xiàn)在就介紹Psyco:
Psyco 是 Python 語言的一個擴展模塊,可以即時對程序代碼進行專業(yè)的算法優(yōu)化,可以在一定程度上提高程序的執(zhí)行速度,尤其是在程序中有大量循環(huán)操作時。最早被 Armin Rigo 開發(fā),后來由 Christian Tismer 維護并繼續(xù)完善。
Psyco 可以在 32位元 的 GNU/Linux、BSD、Mac OS X、Microsoft Windows 平臺上運行。Psyco 使用 C語言 編寫,只針對32位元平臺進行了編碼。目前開發(fā)工作已經(jīng)停止,由 PyPy 所接替,同時 PyPy 也提供針對 64位元 系統(tǒng)的支持。Psyco 可以在 Python解釋器 編譯代碼時自動優(yōu)化,將其使用C實現(xiàn),并針對循環(huán)操作進行一些特殊的優(yōu)化。經(jīng)過這些優(yōu)化,程序的性能將會得到提升,在跨平臺環(huán)境下尤為明顯。
安裝Psyco
sudo apt-get install python-psyco
或者到官網(wǎng)上下載安裝包,使用easy install安裝即可。
使用Psyco模塊
import psyco
psyco.full()
def fib(n):
if n < 2:
return n
else:
return fib(n - 1) + fib(n - 2)
fib(40)
運行結(jié)果
$ time python fib.py
3.190s
改善你的代碼
現(xiàn)在將我大部分 Python 代碼加上下列腳本來利用 Psyco 提升運行速度:
try:
import psyco
psyco.full()
except ImportError:
pass # psyco not installed so continue as usual
相關(guān)文章
python實現(xiàn)簡單的學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細介紹了python實現(xiàn)簡單的學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn)
本文主要介紹了Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python定時任務(wù)APScheduler安裝及使用解析
這篇文章主要介紹了Python定時任務(wù)APScheduler安裝及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08Python制作旋轉(zhuǎn)花燈祝大家元宵節(jié)快樂(實例代碼)
一年一度的元宵節(jié)來臨,小編在這里祝大家2022元宵節(jié)快樂,今天小編給大家分享一篇教程關(guān)于Python制作旋轉(zhuǎn)花燈祝大家元宵節(jié)快樂,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-02-02