1. 程式人生 > >Python直譯器PyPy釋第7版 更新模塊及垃圾回收機制

Python直譯器PyPy釋第7版 更新模塊及垃圾回收機制

程序代碼 isa proc 釋放 機構 alt 2.7 window 明顯

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。

Python直譯器PyPy釋第7版 更新模塊及垃圾回收機制