国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python下使用Psyco模塊優(yōu)化運(yùn)行速度

2020-02-23 00:33:18
字體:
供稿:網(wǎng)友

今天介紹下Psyco模塊,Psyco模塊可以使你的Python程序運(yùn)行的像C語言一樣快。
都說Python語言易用易學(xué),但性能上跟一些編譯語言(如C語言)比較要差不少,這里可以用C語言和Python語言各編寫斐波納契數(shù)列計算程序,并計算運(yùn)行時間:

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)

運(yùn)行時間
代碼如下:
$ time ./fib
3.099s
$ time python fib.py
16.655s

可以看到運(yùn)行時間還是有點(diǎn)差距的,這里的差距大概是5倍左右,現(xiàn)在就介紹Psyco:

Psyco 是 Python 語言的一個擴(kuò)展模塊,可以即時對程序代碼進(jìn)行專業(yè)的算法優(yōu)化,可以在一定程度上提高程序的執(zhí)行速度,尤其是在程序中有大量循環(huán)操作時。最早被 Armin Rigo 開發(fā),后來由 Christian Tismer 維護(hù)并繼續(xù)完善。

Psyco 可以在 32位元 的 GNU/Linux、BSD、Mac OS X、Microsoft Windows 平臺上運(yùn)行。Psyco 使用 C語言 編寫,只針對32位元平臺進(jìn)行了編碼。目前開發(fā)工作已經(jīng)停止,由 PyPy 所接替,同時 PyPy 也提供針對 64位元 系統(tǒng)的支持。Psyco 可以在 Python解釋器 編譯代碼時自動優(yōu)化,將其使用C實(shí)現(xiàn),并針對循環(huán)操作進(jì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)

運(yùn)行結(jié)果
代碼如下:
$ time python fib.py 
3.190s

改善你的代碼

現(xiàn)在將我大部分 Python 代碼加上下列腳本來利用 Psyco 提升運(yùn)行速度:
代碼如下:
try: 
    import psyco 
    psyco.full() 
except ImportError: 
    pass # psyco not installed so continue as usual

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卓尼县| 长春市| 扎赉特旗| 濉溪县| 滨海县| 洪湖市| 乌拉特后旗| 明光市| 内江市| 陇川县| 夏邑县| 大英县| 赣榆县| 塘沽区| 专栏| 深圳市| 茂名市| 灌南县| 博罗县| 贡觉县| 长顺县| 和林格尔县| 惠水县| 祁东县| 澄迈县| 香格里拉县| 和林格尔县| 胶南市| 凤山市| 富源县| 治多县| 河西区| 正安县| 绥宁县| 开封市| 克东县| 成武县| 佛坪县| 巴南区| 洱源县| 岗巴县|