跳至內容

Python 程式設計/PyPy

來自華夏公益教科書,開放的書籍,開放的世界

PyPy 是一個包含即時編譯器的 Python 直譯器。Python 程式通常可以在 PyPy 上執行而無需修改,但由於某些模組是為 CPython(標準 Python 直譯器)製作的,因此並非所有模組都能與 PyPy 相容。此外,由於 PyPy 在釋放分配的物件(包括檔案控制代碼)時的策略不同,因此一些 Python 程式可能會遇到問題。

與 CPython 相比,PyPy 帶來的速度提升取決於任務的性質。對於一些計算量大的任務,速度提升因子可以高達 50 倍。PyPy 速度中心報告的幾何平均速度提升因子為 7.6,它是根據一組基準測試計算得出的。

PyPy 可用於 Python 2 和 Python 3,但 Python 3 版本速度較慢;上述速度說明適用於 Python 2。

可以互動使用 PyPy:你可以在命令列中輸入 "pypy",並像使用 CPython 一樣開始與它互動。

PyPy 的輸出不能保證與 CPython 完全相同。例如,PyPy 可以以與 CPython 不同的順序從集合中生成項,因為集合中的項順序是任意的,並且不能保證在不同的 Python 實現之間相同;為了驗證,你可以比較 {1,2}.pop() 的結果。字典也具有任意的鍵順序。

只要 PyPy 使用 SSE2 指令集構建,而 CPython 沒有,浮點結果在某些設定中可能在 PyPy 和 CPython 之間略有不同。

另請參閱 效能

[編輯 | 編輯原始碼]
華夏公益教科書