国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 海城市| 汪清县| 石泉县| 珠海市| 铁力市| 通化市| 永宁县| 桦南县| 兰考县| 宁远县| 揭东县| 桐城市| 泰兴市| 津南区| 鄂托克旗| 雷山县| 安西县| 东阿县| 澄城县| 巴东县| 新兴县| 宜春市| 汝阳县| 攀枝花市| 德州市| 龙门县| 宁远县| 武宣县| 阜新市| 霍州市| 庆元县| 焦作市| 平顶山市| 梧州市| 沂源县| 兴安盟| 平谷区| 伊川县| 揭西县| 怀集县| 滕州市|