Python直譯器PyPy釋出第7個主要版本,這個版本同時又包含3個版本,雖然使用相同的程式碼基礎,但是內建的直譯器版本不同,分別支援Python 2.7、Python 3.5以及Python 3.6 Alpha版本。

PyPy是一個與Python相容的直譯器,自詡為官方直譯器CPython的替代品,因為其整合了追蹤JIT編譯器,所以效能比CPython快上許多。開發團隊現在釋出了PyPy 7.0.0,由於支援的Python版本不同,因此分成PyPy 2.7、PyPy 3.5以及PyPy 3.6 Alpha共3個版本,不過這3個版本的程式碼庫並沒有太大的差異。

官方特別提醒,PyPy 3.6 Alpha是他們第一個支援Python 3.6的語法與功能的PyPy版本,目前仍在測試版階段,同時他們也認為Windows PyPy 3.5未達可用於產品階段的品質,在相容性上還存在一些問題待處理,建議開發者不要將這兩個版本用於開發產品上。

官方持續與下游套件供應商合作,不過在專為PyPy發布建置版本之前,官方收集了一些常見的套件並以wheels封裝格式提供。另外,官方也改善了PyPy 7.0.0的垃圾回收效率,並在今年1月釋出可手動控制垃圾回收機制時,併入這個版本中。

PyPy的垃圾回收策略會定期掃描堆(Heap),釋放無法存取物件的記憶體空間,這樣的方式雖然比起CPython的參照策略效率好很多,但是應用程式卻會產生明顯的停頓。因此PyPy加入了gc.disable()與gc.collect_step()兩個函式,可以讓開發者手動控制記憶體釋放的時機。而這項功能原本是與特定研究機構合作的成果,現在官方將其併入PyPy 7.0.0中。

另外,官方將新版PyPy中的cffi模組版本升級到了1.2,cppyy後端也更新到了1.4,官方建議開發者用這兩個模組來打包C和C++程式碼,以獲得良好的JIT體驗。而由於這個版本與前一版本完全相容,而且又修復了許多錯誤,因此官方強烈建議開發者更新到最新版PyPy。


Advertisement

更多 iThome相關內容