Psyco
Psyco(普斯科)是 Python 語言的一個擴展模塊,可以即時對程序代碼進行專業的算法優化,可以在一定程度上提高程序的執行速度,尤其是在程序中有大量循環操作時。最早被 Armin Rigo 開發,後來由 Christian Tismer 維護並繼續完善。
開發者 | Armin Rigo、Christian Tismer |
---|---|
當前版本 | 1.6(2007年12月16日 | )
源代碼庫 | |
操作系統 | 跨平台 |
類型 | 即時編譯 |
許可協議 | MIT許可證 |
網站 | psyco |
Psyco 可以在 32位元 的 GNU/Linux、BSD、Mac OS X、Microsoft Windows 平台上運行。Psyco 使用 C語言 編寫,只針對32位元平台進行了編碼。目前開發工作已經停止,由 PyPy 所接替,同時 PyPy 也提供針對 64位元 系統的支持。Psyco 可以在 Python解釋器 編譯代碼時自動優化,將其使用C實現,並針對循環操作進行一些特殊的優化。經過這些優化,程序的性能將會得到提升,在跨平台環境下尤為明顯。
性能提升
對於密集計算型程序,Psyco 可以顯著提升程序的執行速度。實際的提升決定於程序的具體實現,曾經有人獲得了高達100倍的提升,也有的時候因為需要額外加載 Psyco 模塊反倒帶來了輕微的性能下降。[1][2][3][4] 經過調查,在典型的應用上,Psyco 平均可以提供 1.5至4 倍的性能提升。這幫助 Python 的性能達到了 Smalltalk 和 Scheme 的水準,但是仍然 Fortran 與 C這樣的編譯語言,或是一些 JIT 語言如 C# 和 Java有所差距。[5]
Psyco 宣稱自己是非常易用的,事實也確實如此。最簡單的 Psyco 優化只需要在程序開始處放置兩行代碼:[6]
import psyco
psyco.full()
這兩行指令會讓 Python解釋器 加載 Psyco 模塊,並對接下來的腳本進行優化。對於小的程序來說,這相當的方便;但是大型工程來說,加入這些的工作量並不低,通常可以藉助自動化腳本來完成。
進一步的動態
在2009年7月17日,Christian Tismer 宣布了 Psyco V2 的計劃。[7] 然而,在2012年3月12日,Psyco 項目主頁上宣布 Psyco 停止維護並正式結束,由 Pypy 所接替。[8]
引用
- ^ Python Psyco benchmarks. [2008-04-24]. (原始內容存檔於2008-06-06).
- ^ Python Psyco Homepage at sourceforge. [2009-03-04]. (原始內容存檔於2019-11-29).
- ^ A beginners guide to using Python for performance computing at scipy.org. [2009-03-04]. (原始內容存檔於2009-03-11).
- ^ Charming Python: Make Python run as fast as C with Psyco. [2009-03-04]. (原始內容存檔於2012-07-05).
- ^ Boxplot Summary. [2009-10-16]. (原始內容存檔於2011-06-03).
- ^ Rigo, Armin. Quick examples. The Ultimate Psyco Guide. [3 June 2011]. (原始內容存檔於2011-05-07).
- ^ Announcement on pypy-dev mailing list with links to project page. [2013-04-18]. (原始內容存檔於2009-07-20).
- ^ Psyco Homepage. [2013-04-18]. (原始內容存檔於2020-05-16).
參閱
- Cython
- PyPy
- Unladen Swallow
- YARV (Yet another Ruby VM)
外部連結
- The Psyco home page(頁面存檔備份,存於網際網路檔案館)
- David Mertz's IBM developerWorks article: Make Python run as fast as C with Psyco
- psyco notes, Poor Yorick