python 和其他的指令碼語言在效能上跟一些編譯語言(如c語言)比較要差不少,例如這裡有兩個用 c 和 python 語言編寫的斐波納契數列計算程式:
c語言:
01
int
fib(
int
n)
07
08
int
main()
python語言:
1
def
fib(n):
2
if
n <
2
:
3
return
n
4
else
:
5
return
fib(n
-
1
)
+
fib(n
-
2
)
6
fib(
40
)
下面是執行的時間比較:
1
$
time
./fib
2
3.099s
3
$
time
python fib.py
4
16.655s
正如我們說預想的,c 程式比 python 要快很多,在我們這個例子中要快 5 倍之多。
儘管在 web 環境中,指令執行的速度並不重要,因為瓶頸是在 i/o 上。但我也同時在其他地方使用 python ,因此讓我們來看看如何優化 python 程式的執行速度。
首先需要安裝 psyco,在 linux 下可以這樣:
1
sudo
apt-get
install
python-psyco
然後修改 python 指令碼來呼叫 psyco:
1
import
psyco
2
psyco.full()
3
4
def
fib(n):
5
if
n <
2
:
6
return
n
7
else
:
8
return
fib(n
-
1
)
+
fib(n
-
2
)
9
fib(
40
)
再次執行的時間是:
1
$
time
python fib.py
2
3.190s
只需要 3 秒鐘,使用 psyco 後 python 的執行速度居然跟 c 語言相差無幾。psyco 通過即時編譯**避免逐行解釋執行來提公升執行速度的。
現在將我大部分 python **加上下列指令碼來利用 psyco 提公升執行速度:
view source
print?
1
try
:
2
import
psyco
3
psyco.full()
4
except
importerror:
5
pass
# psyco not installed so continue as usual
python優化模組psyco
1.psyco psyco是乙個pvm的增強工具,這個工具收集並使用資訊,在程式執行時,可以將程式的位元組碼轉化為底層的真正的二進位制機器 從而實現更快的執行速度。在開發過程中,psyco無需 的修改和獨立的編譯步驟可完成這一轉換。概況的講,當程式進行執行時,psyco收集正在傳遞過程中的物件的類別...
使用psyco來加速python程式
最近在寫乙個python的 由於要處理大量的迴圈語句,導致整個程式執行起來顯得很吃力,所以想試試psyco這個模組。使用方法 1 在自己的python 中加入import psyco psyco.full psyco.full 是對所有的函式都編譯,但是記憶體開銷也隨之增加不少,在我的專案中測試發現...
利用shell指令碼自動執行python程式
shell 是乙個用 c 語言編寫的程式,它是使用者使用 linux 的橋梁。shell 既是一種命令語言,又是一種程式語言.shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務.shell 指令碼 shell script 是一種為 shell 編寫的...