Psyco,一種 Python 專用編譯器,幫助平衡了這一競爭。Psyco 現在是個外部模塊,但是在將來的某一天它可能會包括到 Python 本身中去。只需極少量的額外編程,通常就可以使用 Psyco 將 Python 代碼的速度提高好幾個數量級。
Python 的設計在很多方面都類似于 Java 的設計。兩者都利用了解釋專門的偽編譯字節碼的虛擬機。JVM 比 Python 更高級的一個方面在于優化了字節碼的執行。
PS:
Psyco 可以在 Python解釋器 編譯代碼時自動優化,將其使用C實現,并針對循環操作進行一些特殊的優化。經過這些優化,程序的性能將會得到提升,在跨平臺環境下尤為明顯。
性能提升
對于密集計算型程序,Psyco 可以顯著提升程序的執行速度。實際的提升決定于程序的具體實現,曾經有人獲得了高達100倍的提升,也有的時候因為需要額外加載 Psyco 模塊反倒帶來了輕微的性能下降。經過調查,在典型的應用上,Psyco 平均可以提供 1.5至4 倍的性能提升。這幫助 Python 的性能達到了 Smalltalk 和 Scheme 的水平,但是仍然與 Fortran 與 C這樣的編譯語言,或是一些 JIT 語言如 C# 和 Java有所差距。Psyco 宣稱自己是非常易用的,事實也確實如此。
最簡單的 Psyco 優化只需要在程序開始處放置兩行代碼:
import psyco
psyco.full()
這兩行指令會讓 Python解釋器 加載 Psyco 模塊,并對接下來的腳本進行優化。對于小的程序來說,這相當的方便;但是大型工程來說,加入這些的工作量并不低,通??梢越柚詣踊_本來完成。