Python下使用Psyco模組最佳化運行速度

來源:互聯網
上載者:User
今天介紹下Psyco模組,Psyco模組可以使你的Python程式啟動並執行像C語言一樣快。
都說Python語言易用易學,但效能上跟一些編譯語言(如C語言)比較要差不少,這裡可以用C語言和Python語言各編寫費伯納西數列計算程式,並計算已耗用時間:

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倍左右,現在就介紹Psyco:

Psyco 是 Python 語言的一個擴充模組,可以即時對程式碼進行專業的演算法最佳化,可以在一定程度上提高程式的執行速度,尤其是在程式中有大量迴圈操作時。最早被 Armin Rigo 開發,後來由 Christian Tismer 維護並繼續完善。

Psyco 可以在 32位元 的 GNU/Linux、BSD、Mac OS X、Microsoft Windows 平台上運行。Psyco 使用 C語言 編寫,只針對32位元平台進行了編碼。目前開發工作已經停止,由 PyPy 所接替,同時 PyPy 也提供針對 64位元 系統的支援。Psyco 可以在 Python解譯器 編譯代碼時自動最佳化,將其使用C實現,並針對迴圈操作進行一些特殊的最佳化。經過這些最佳化,程式的效能將會得到提升,在跨平台環境下尤為明顯。

安裝Psyco

代碼如下:


sudo apt-get install python-psyco

或者到官網上下載安裝包,使用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)

運行結果

代碼如下:


$ time python fib.py
3.190s


改善你的代碼

現在將我大部分 Python 代碼加上下列指令碼來利用 Psyco 提升運行速度:

代碼如下:


try:
import psyco
psyco.full()
except ImportError:
pass # psyco not installed so continue as usual

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.