-
PyPy
鎖定
PyPy是用Python實現的Python解釋器的動態編譯器,是Armin Rigo開發的產品。
- 外文名
- PyPy
- 開發者
- Armin Rigo
- 目 的
- 更好的Hack Python
- 屬 性
- 動態編譯器
PyPy項目背景
PyPy
[1]
是Python開發者為了更好的Hack Python創建的項目。此外,PyPy比CPython是更加靈活,易於使用和試驗,以制定具體的功能在不同情況的實現方法,可以很容易實施。 該項目的目標是,讓PyPy比C實現的Python更為容易的適應各個項目和方便裁剪。
PyPy現狀介紹
PyPy開始只是研究性質的項目。但是開發非常成熟,在2007年中旬發佈了1.0 Release版本後,大家關注的焦點是,能否在2008年出現可供生產環境使用的版本。
最新的(2018.12.15)PyPy版本是PyPy3 v6.0.0,兼容Python3.5.3。可以運行在Linux的32位和64位、MacOSX和Windows的32位平台中,但是基於arm平台的正在開發中。它支持Python語言的所有核心部分以及大多數的Python語言標準庫函數模塊,並且通過了Python語言的test suite。與CPython的區別可以去看它的兼容性頁面.
另外,PyPy 也有 每夜構建 版本供開發者測試。
PyPy是作為Specific Targeted Research Projects(特定領域研究項目)從2004年12月到2007年3月,開始接受歐盟的援助。
PyPy實現原理
PyPy的第一部分:用Python實現的Python
其實這麼説並不準確,準確得説應該是用rPython實現的Python,rPython是Python的一個子集,雖然rPython不是完整的Python,但用rPython寫的這個Python實現卻是可以解釋完整的Python語言。
PyPy的第二部分:編譯器
這是一個編譯rPython的編譯器,或者説這個編譯器有一個rPython的前端,目前也只有這麼一個前端,不過它的後端卻是不少,也就是説這個編譯器支持許多的目標語言,比較重要的有:C,CIL,Javascript ...
[2]
PyPy主要特性
- 大量的性能改進。
- Bug修復,以及與CPython的兼容性修復。
- 現在stackless功能默認啓用。
- NumPy effort現在更名為numpypy,使用時可以簡單寫作:import numpypy as numpy。
- JSON編碼器已被替換為一個新的,是用純Python編寫的,某些情況下比CPython的C擴展快2倍,比PyPy 1.6中的快20倍左右。
- 一些RPython模塊的內存佔用已得到大幅改善。
另外,有一些功能正在開發,將包含在1.8版本中,這些功能包括:
- 特殊列表實現。可以大幅改善一些應用程序的性能/內存影響。
- NumPy effort即將支持多維數組。
- 參考資料
-
- 1. what is pypy .what is pypy[引用日期2016-11-21]
- 2. PyPy 1.7發佈,優秀的Python解釋器 .資訊頻道[引用日期2013-10-16]